call仿函式

江寒雨發表於2024-03-17

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)

單態

相關文章