Python:UnboundLocalError的帮助:在赋值之前引用的局部变量

时间:2010-02-13 00:56:19

标签: python multithreading

我的部分代码一直收到此错误。

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 个答案:

答案 0 :(得分:1)

您可能尚未导入包含sshfile定义的文件,或者您需要使用包名限定类名。这取决于你如何导入它。

它来自哪个包裹?在哪里定义?


<强>更新

对于阅读此内容的其他人,在评论中进行讨论后发现,问题是名称sshfile已在函数中作为变量名进一步使用,如下所示:

class sshfile:
    pass

def a():
    f = sshfile() # UnboundLocalError here
    sshfile = 0

a()

解决方案是不使用隐藏您需要使用的类名的变量名。