谁能解释一下这是怎么回事?我做错了什么吗?
>>> class qw:
... def f2x(par1, par2, par3):
... print par1, par2, par3
...
>>> obj = qw()
>>> obj.f2x("123", 13, "wert") Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f2x() takes exactly 3 arguments (4 given)
>>>
如果我只定义一个函数,一切正常
>>> def f2x(par1, par2, par3):
... print par1, par2, par3
...
>>> f2x("1", 2, "too many")
1 2 too many
>>>
最佳答案
您忘记了所有成员函数都隐式地获得另一个参数,在 Python 中按照惯例称为 self
。
尝试:
class qw:
def f2x(self, par1, par2, par3):
print par1, par2, par3
但还是像以前一样调用它:
obj = qw()
obj.f2x("123", 13, "wert")
在f2x
中,self
是调用成员的对象。这是您真正应该了解的 Python 的一个非常基本的概念。
关于python:提供的参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4044750/