为什么再次导入模块不会更新模块?

时间:2019-02-20 18:03:37

标签: python import read-eval-print-loop

我正在阅读有关异常处理的教程,不得不在名为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 :(得分:2)

导入缓存在Python中,您可以在official documentation中进行了解。

有多种方法可以使导入缓存无效,但强烈建议不要这样做。

答案 1 :(得分:1)

非常简单:模块已缓存,请参阅主题(5.3.1)上的Python documentation