自我错误(Python)

时间:2017-09-20 09:29:25

标签: python self

此(部分)代码给出了错误:

def pickFile(self):
    global imgPath01


imgPath01 = QtGui.QFileDialog.getOpenFileName(self, 'Open File', "~/", "Images (*.png *.jpg)")
print(imgPath01)

self.refreshImage()
pass

我在selfself.refreshImage上有错误。它说:NameError: name 'self' is not defined

完整代码可以是found here

2 个答案:

答案 0 :(得分:2)

在Python中,缩进很重要。那些没有缩进的行不是函数的一部分,因此Python会在脚本运行后立即执行它们,此时它会查找一个名为 global 的变量(user, auth),它不存在。

解决方案是缩进函数的剩余行。

编辑:类似地,您定义的函数不能缩进到足以成为该类的成员函数。

您的代码应格式化为:

self

答案 1 :(得分:1)

当函数是类的一部分时,您只需要使用self作为参数,因为self是类。当它是正常功能时,你根本就没有参数,这就是你应该做的。

编辑:查看完整代码后,我认为带有self参数的函数应该是您在开头定义的类的一部分。如果是这样,缩进它们。这是必要的,它不仅仅是像许多其他语言一样的选择:Python以这种方式工作。要小心缩进,因为你可能有很多错误,但是FYI,Python是一种解释型语言,因此在执行之前它不会编译并显示错误:它直接执行,如果发现错误,它会显示那个,但不多了。查看所有代码。