不幸的是,我在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'
有什么建议?
import
语句是一种赋值。通过在class
语句中执行它,您将定义一个名为foo
的类属性,该属性绑定到模块。你必须使用reload(MyQThread.foo)
。
也就是说,将import
语句放在类定义中几乎没有什么好处;只需将import
移至全球范围。