У меня есть следующий код игрушки в двух файлах:
Файл b.py
:
def test_b():
print "b"
Файл a.py
: из b импортировать test_b
def test_a():
print "a"
test_b()
Затем я запускаю python REPL:
>>> execfile("a.py")
>>> test_a()
a
b
Затем я изменяю b.py
на: def test_b(): print "bb"
И запустить в REPL:
>>> execfile("b.py")
>>> test_a()
a
bb
На данный момент все в порядке. Теперь я изменяю a.py
на:
from b import test_b
def test_a():
print "aa"
test_b()
Теперь я запускаю REPL:
>>> execfile("a.py")
>>> test_a()
aa
b
Что уже не нормально, так как REPL получил более старую версию b.py
. Кажется, что Python выполняет некоторое кэширование при загрузке файлов, и мой вопрос: есть ли способ заставить его не делать этого? Я не смог найти подходящий вариант для функции excefile
.