還是沒弄明白這個函數要怎么用
class?Person(object): ????def?__init__(self,?name,?gender): ????????self.name?=?name ????????self.gender?=?gender ????def?__call__(self,?friend): ????????print('My?name?is?{}...'.format(self.name)) ????????print('My?friend?is?{}...'.format(friend)) >>>?p?=?Person('Bob',?'Male')
>>>?p('Alice')?#?==>?用函數的方式調用Person類的實例p My?name?is?Bob... My?friend?is?Alice...
2021-11-23
簡單來說
2021-08-19
是說這個__call__類方法嗎
我的想法是:原本創建了Python中的一個類(還沒有創建這個類中的實例),然后再定義類的時候采用了__call__的類方法使整個類(中的實例對象)由。不可調動 ?變為 可調動 ?的模式,可以讓類中的實例對象可以直接調用函數
例:
class Words(object):
????def say():
????????print("Python語言Good")
say()
say.__call__()
兩則代碼的輸出都是:
"Python語言Good"
say() 是 say.__call__()的縮寫
采用__call__就是重新加載了函數()運算符