我想了解这段代码为什么能够工作:
class MyClass(object):
def f(self): print "Hello"
ff = f
def g(self): self.ff()
MyClass().g()
虽然这个不会:
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 == self.f
,那么self.ff[0] == self.f
不是也成立吗?
ff[0]
不是该类的成员? - Ruggero Turra