Почему импорт модуля снова не обновляет модуль? - PullRequest
0 голосов
/ 20 февраля 2019

Я просматривал учебник по обработке исключений, и мне пришлось написать этот фрагмент кода в модуле с именем exception.py

def convert(s):
    try:
        x = int(s)
        prnit("Conversion done. x=", x)  #there is a typo
    except ValueError:
        print("Failed")
        x = -1
    return x

, затем из REPL импортировать эту функцию как

from exception import convert

и выполните преобразование (7.7), которое вернуло NameError: name 'prnit' is not defined, как и ожидалось.После чего я исправил опечатку и снова сделал from exception import convert.Но ошибка осталась.Почему он не импортировал новый модуль?

Мне пришлось exit(), затем REPL и импортировать его снова, тогда он работал нормально и, как и ожидалось.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Импорт кэшируется в Python, вы можете прочитать об этом в официальной документации .

Существуют способы аннулировать кэш импорта, но это настоятельно не рекомендуется.

0 голосов
/ 20 февраля 2019

Довольно просто: модули кэшируются, см. Документацию Python по теме (5.3.1).

...