此(部分)代码给出了错误:
def pickFile(self):
global imgPath01
imgPath01 = QtGui.QFileDialog.getOpenFileName(self, 'Open File', "~/", "Images (*.png *.jpg)")
print(imgPath01)
self.refreshImage()
pass
我在self
和self.refreshImage
上有错误。它说:NameError: name 'self' is not defined
。
完整代码可以是found here。
答案 0 :(得分:2)
在Python中,缩进很重要。那些没有缩进的行不是函数的一部分,因此Python会在脚本运行后立即执行它们,此时它会查找一个名为 global 的变量(user, auth)
,它不存在。
解决方案是缩进函数的剩余行。
编辑:类似地,您定义的函数不能缩进到足以成为该类的成员函数。
您的代码应格式化为:
self
答案 1 :(得分:1)
当函数是类的一部分时,您只需要使用self
作为参数,因为self
是类。当它是正常功能时,你根本就没有参数,这就是你应该做的。
编辑:查看完整代码后,我认为带有self
参数的函数应该是您在开头定义的类的一部分。如果是这样,缩进它们。这是必要的,它不仅仅是像许多其他语言一样的选择:Python以这种方式工作。要小心缩进,因为你可能有很多错误,但是FYI,Python是一种解释型语言,因此在执行之前它不会编译并显示错误:它直接执行,如果发现错误,它会显示那个,但不多了。查看所有代码。