本篇文章給大家帶來的内容是關于python中__call__ 方法的使用介紹(附示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
如果python中的一個類定義了 __call__ 方法,那麼這個類它的執行個體就可以作為函數調用,也就是實作了 () 運算符,即可調用對象協定
下面是一個簡單的例子:class TmpTest:
def __init__(self, x, y):
self.x = x
self.y = y
def __call__(self, x, y):
self.x, self.y = x, y
a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)
在本文中不讨論裝飾部分的内容,借用裝飾器來講解一個__call__方法的使用,如果需要将一個類作為裝飾器,那需要為這個類實作__call__方法,一個使用__call__來實作類裝飾器的例子:class TmpTest:
def __init__(self, func):
self.func=func
def __call__(self, *args,**kwargs):
result=self.func(*args,**kwargs)
return result
@TmpTest
def add_num(x,y):
return x+y
print(add_num(1,0))