使用reload()时NameError(全局名称...未定义)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用reload()时NameError(全局名称...未定义)相关的知识,希望对你有一定的参考价值。
不幸的是,我在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
移至全球范围。
以上是关于使用reload()时NameError(全局名称...未定义)的主要内容,如果未能解决你的问题,请参考以下文章
调用异步任务芹菜时引发异常:“NameError:未定义全局名称*”