使用self时缺少1个必需的位置参数

Den*_*boy 2 python python-3.x

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

def method2(self):
    self.method1()
Run Code Online (Sandbox Code Playgroud)

这可行。现在,我添加了其他参数:

def method2(self, param1, param2, param3):
    self.method1()
Run Code Online (Sandbox Code Playgroud)

我从我的电话main.py

xx.method2(param1, param2, param3)
Run Code Online (Sandbox Code Playgroud)

现在我得到一个错误:

missing 1 required positional argument: 'param3'
Run Code Online (Sandbox Code Playgroud)

我检查了一下,param3在那儿,参数的顺序是一样的。我认为这与冲突self

我该如何解决?我的班级需要init方法吗?

编辑:在我的主要:

from project.visualizer import Visualizer
vsl = Visualizer

vsl.method2(param1, param2, param3)
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 6

vsl = Visualizer
Run Code Online (Sandbox Code Playgroud)

这不会创建Visualizer您想要的实例。如所写,它导致vsl指向Visualizer类而不是类的实例。打电话时vs1.method2()就好像您已经写过:

Visualizer.method2(param1, param2, param3)
Run Code Online (Sandbox Code Playgroud)

它应该是:

vsl = Visualizer()
Run Code Online (Sandbox Code Playgroud)

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