call仿函式
# ### __call__ 魔術方法
'''
觸發時機:把物件當作函式呼叫的時候自動觸發
功能: 模擬函式化操作
引數: 引數不固定,至少一個self引數
返回值: 看需求
'''
# (1) 基本語法
class MyClass():
def __call__(self):
print("__call__魔術方法被觸發 ... ")
obj = MyClass()
obj()
# (2) 利用__call__魔術方法做統一呼叫
class Wash():
def __call__(self,something):
print("我要洗{}".format(something))
self.step1(something)
self.step2()
self.step3()
return "洗完了"
def step1(self,something):
print("放水,把{}扔進去".format(something))
def step2(self):
print("倒洗衣粉,洗衣液,藍月亮,金紡,立白 ... ")
def step3(self):
print("洗一洗,晾乾,穿上")
obj = Wash()
# obj.step1()
# obj.step2()
# obj.step3()
res = obj("襪子")
print(res)