ich verstehen will, warum dieser Code funktioniert:Methode in Tupel erfordert explizite `self` Argument
class MyClass(object):
def f(self): print "Hello"
ff = f
def g(self): self.ff()
MyClass().g()
während dies nicht:
class MyClass(object):
def f(self): print "Hello"
ff = f,
def g(self): self.ff[0]()
MyClass().g()
, da es ein Argument braucht self.ff[0](self)
:
Ist nicht self.ff[0] == self.f
wie im vorherigen Fall self.ff == self.f
?
Ich bin nicht 100% sicher, aber Methoden sind Funktionen, die Mitglieder der Klasse sind. In Ihrem zweiten Beispiel ist ff ein Tupel, keine Funktion und ff [0] ist kein Mitglied von MyClass. Es ist nur eine Funktion. –
Warum 'ff [0]' kein Mitglied der Klasse ist? –
Ist das ein besserer Titel? Es ist eine interessante Frage, danke dafür! –