python:提供的参数太多

标签 python class parameter-passing

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

>>> 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/

相关文章:

java - 相同的类(class)类型转换?

javascript - 将数组从 HTML 表单传递到 PHP,然后传递到 WordPress

c# - 使用 C# 连接到 SQLite

python - 使用 Flask Bootstrap

python - Caesar's code - Python 实现中的问题

python - 使用方法名称字符串检索方法? Python

python - matplotlib 为二元矩阵着色

c++ 没有合适的从 "Camera"到 "Actor *"的转换函数

C++ 从类头文件访问全局整数

带有可选参数的 powershell 调用方法