Skip to main content
 首页 » 编程设计

python:提供的参数太多

2025年05月04日9zdz8207

谁能解释一下这是怎么回事?我做错了什么吗?

>>> 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 的一个非常基本的概念。