关于python:使用self时缺少1个必需的位置参数

missing 1 required positional argument when using self

本问题已经有最佳答案,请猛点这里访问。

我在学Python。我创建了一个包含2个方法的类可视化工具。现在我想调用第二个方法中的第一个方法。我读到我必须使用自我:

1
2
def method2(self):
    self.method1()

这是可行的。现在我添加了额外的参数:

1
2
def method2(self, param1, param2, param3):
    self.method1()

我从我的main.py中称之为:

1
xx.method2(param1, param2, param3)

现在我得到一个错误:

1
missing 1 required positional argument: 'param3'

我查过了,参数3在那里,参数的顺序是一样的。我认为这与self冲突。

我怎么解决这个问题?我的类中需要init方法吗?

编辑:在我的主要方面:

1
2
3
4
from project.visualizer import Visualizer
vsl = Visualizer

vsl.method2(param1, param2, param3)


1
vsl = Visualizer

这并不像您希望的那样创建Visualizer的实例。如文所述,它使vsl指向Visualizer类,而不是该类的实例。当你打电话给vs1.method2()时,就好像你写了:

1
Visualizer.method2(param1, param2, param3)

应该是:

1
vsl = Visualizer()

如果Visualizer的构造函数接受参数,则将这些参数传入。


要调用方法,必须先初始化类。

1
2
x = Visualizer()
x.method2(...)