【发布时间】:2013-12-12 09:54:03
【问题描述】:
>>> import types
>>> class Foo:
... def say(self):
... print("Foo say")
...
>>> class Bar:
... def say(self):
... print("Bar say")
...
>>> f = Foo()
>>> b = Bar()
>>> types.MethodType(f.say, b)()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: say() takes 1 positional argument but 2 were given
我只是想知道我给出的 2 个论点是什么?我知道其中一个是self,但另一个是什么?
当然,在这个例子中,正确的方法是:
>>> types.MethodType(Foo.say, b)()
Foo say
但我问的是types.MethodType(f.say, b)() 的错误。我想知道它为什么抱怨
接受 1 个位置参数,但给出了 2 个
【问题讨论】:
标签: python