を必要メソッドは、私は、このコードが動作する理由を理解したい明示的な `self`引数
class MyClass(object):
def f(self): print "Hello"
ff = f,
def g(self): self.ff[0]()
MyClass().g()
それは引数self.ff[0](self)
必要があるので:
TypeError: f() takes exactly 1 argument (0 given)
self.ff[0] == self.f
は上記の場合と同じではありませんself.ff == self.f
?
私は100%確実ではありませんが、メソッドはクラスのメンバーである関数です。 2番目の例では、ffはタプルであり、関数ではなく、ff [0]はMyClassのメンバーではありません。それは単なる関数です。 –
なぜ 'ff [0]'はクラスのメンバーではありませんか? –
それはより良いタイトルですか?面白い質問です、ありがとう! –