02 #### `__call__` ,物件(),自動執行call 方法

jhchena發表於2024-09-27

call

class foo:

#  __int__ 初始化方法
def __init__(self, name):  # 2、在去執行:__init__ 方法,做初始化
    self.name = name

def ff(self):
    print(self.name)

def __call__(self):
    pass

obj = foo('test') # 類名加括號,執行 new 與 __init__方法,建立物件是為了呼叫類裡面的方法
obj.ff() # # 如果類裡面,定義了__call__方法, 可以使用建立:物件(),自動執行call 方法 obj()

call

class content:

def __init__(self, name, age):
    self.name = name
    self.age = name

def __call__(self, *args, **kwargs):
    print(self.name)
    print(self.age)

def start(xxx):
return xxx() # 函式+括號,表示執行

def handler():
pass

if name == 'main':
obj = content('test', 19) # 將資料封裝到類中
print(start(obj)) # 在將他對的物件,傳到方法中

print(start(handler))  # 也支援將函式傳入到方法

相關文章