bugfix> python > 投稿

残念ながら NameError を取得しますPython 2.7でモジュールをリロードする際。

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()

私はこれをシェルに入れました:

NameError: global name 'foo' is not defined

何かアドバイス?

回答 1 件
  • なあ  ステートメントは割り当ての一種です。 import 内で実行することにより  ステートメント、あなたは定義していますクラス  class という名前の属性  それはモジュールにバインドされています。 foo を使用する必要があります 。

    とはいえ、 reload(MyQThread.foo) を配置してもほとんどメリットはありません  クラス定義のステートメント。 import を移動するだけです  グローバルスコープに。

    import

あなたの答え