Python: 解决UnboundLocalError:局部变量在赋值前被引用
我在我的代码中总是遇到这个错误。
Traceback (most recent call last):
File "./mang.py", line 1688, in <module>
files, tsize = logger()
File "./mang.py", line 1466, in logger
nl = sshfile(list, "nl")
UnboundLocalError: local variable 'sshfile' referenced before assignment
我没有把代码贴出来,因为它在不同的函数之间来回调用。我想知道有没有人能告诉我,为什么Python会报这个错误?sshfile 不是一个变量,它是一个类。
1 个回答
1
你可能没有导入包含sshfile
定义的文件,或者你需要在类名之前加上包名。这要看你是怎么导入的。
这个类是来自哪个包的?它在哪里定义的?
更新
给其他阅读这个内容的人,经过评论中的讨论,发现问题是因为在函数的后面部分,sshfile
被当作了一个变量名使用,像这样:
class sshfile:
pass
def a():
f = sshfile() # UnboundLocalError here
sshfile = 0
a()
解决办法是不要使用一个变量名去覆盖你需要使用的类名。