不幸的是,我在Python 2.7中重新加载模块时得到NameError
。
from PyQt4 import QtCore, QtGui
class MyQThread(QtCore.QThread):
import foo
def __init__(self, parent=None):
super(MyQThread, self).__init__(parent)
def run(self):
reload(foo)
print("Reloaded")
#...do something
当我使用
时thread = MyQThread()
thread.start()
我在shell中得到了这个:
NameError:全球名称' foo'未定义
有什么建议吗?
答案 0 :(得分:1)
import
语句是一种赋值。通过在class
语句中执行它,您将定义绑定到模块的名为foo
的类属性。您必须使用reload(MyQThread.foo)
。
也就是说,将import
语句放在类定义中几乎没有什么好处;只需将import
移动到全局范围。