114

私はfoo.py

def foo():
    print "test"

IPython では、次を使用します。

In [6]:  import foo
In [7]:  foo.foo()
test

次に、次のように変更しfoo()ました。

def foo():
    print "test changed"

IPython では、呼び出しの結果は次のようになりますtest

In [10]:  import foo
In [11]:  foo.foo()
test

それから私は使用します:

In [15]: del foo
In [16]:  import foo
In [17]:  foo.foo()
test

foo.pyc同じフォルダー内に存在するものを削除しますfoo.pyが、それでもうまくいきません。

実行時に更新されたコードを再インポートする方法を教えてください。

4

5 に答える 5

147

Python2.xの場合

reload(foo)

Python3.xの場合

import importlib
import foo #import the module here, so that it can be reloaded.
importlib.reload(foo)
于 2010-11-06T02:58:21.127 に答える
70

ニブラーの答えに加えて:

これは Python 3 で次のように変更されました。

>>> import imp
>>> imp.reload(foo)

@onnodb が指摘しているように、Python 3.4 以降impを支持して廃止されました。importlib

>>> import importlib
>>> importlib.reload(foo)
于 2010-11-06T13:01:46.797 に答える