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

时间:2018-04-29 16:30:36

标签: python python-3.x

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

def method2(self):
    self.method1()

这很有效。现在我添加了其他参数:

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

我从我的main.py

中调用它
xx.method2(param1, param2, param3)

现在我收到一个错误:

missing 1 required positional argument: 'param3'

我检查过,param3就在那里,参数序列是一样的。我认为它与self冲突。

我该如何解决这个问题?我的课程中是否需要一个init方法?

编辑: 在我的主要:

from project.visualizer import Visualizer
vsl = Visualizer

vsl.method2(param1, param2, param3)

2 个答案:

答案 0 :(得分:5)

font-awesome.css

这并不像您想要的那样创建vsl = Visualizer 的实例。如上所述,它会导致Visualizer指向vsl类而不是类的实例。当您致电Visualizer时,就好像您已经写过:

vs1.method2()

应该是:

Visualizer.method2(param1, param2, param3)

如果vsl = Visualizer() 的构造函数接受参数,请将其传递给。

答案 1 :(得分:0)

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

x = Visualizer()
x.method2(...)