1
下面的代碼:使用回叫,而不考慮實例函數或不
def foo(a):
print(a)
class A(object):
callback = foo
def do(self):
self.callback(1)
A().do()
農產品以下錯誤:
Traceback (most recent call last):
File "/home/bastien/Projects/test/t.py", line 13, in <module>
A().do()
File "/home/bastien/Projects/test/t.py", line 10, in do
self.callback(1)
TypeError: foo() takes 1 positional argument but 2 were given
因爲foo
功能用於像一個實例功能。我可以在foo
函數上添加@staticmethod
裝飾器,但是:有沒有方法可以在不觸摸foo
函數的情況下「適應」A.do
的行爲?