次のコードだ場合、動的に適応:エラー以下は、コールバックを使用して、インスタンス機能や簡単な関数
def foo(a):
print(a)
class Bar(object):
def foo(self, a):
print(a)
bar = Bar()
class A(object):
callback1 = foo
callback2 = bar.foo
def do(self):
self.callback2(1)
self.callback1(1)
A().do()
プロデュース:
Traceback (most recent call last):
File "/home/bastien/Projects/test/t.py", line 19, in <module>
A().do()
File "/home/bastien/Projects/test/t.py", line 16, in do
self.callback1(1)
TypeError: foo() takes 1 positional argument but 2 were given
機能foo
ので、インスタンスの関数のように使用されています。 foo
関数に@staticmethod
デコレータを追加することはできますが、A.do
の実行前に単純な関数としてコールバックを使用することは可能です(A.do
の実行前にはわからないと考えてください)?
「A.doの実行前に私たちが知ることはできないと考えてください」 – bux
@bux AreあなたはPython 2または3で? –
私はPython 3を使用しています。 – bux