gpt4 book ai didi

python - 如何判断 Python 模块是否从模块内重新加载()

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:40 25 4
gpt4 key购买 nike

在编写Python模块时,有没有办法判断模块是否正在导入或重新加载?

我知道我可以创建一个类,并且 __init__() 只会在第一次导入时被调用,但我没有计划创建一个类。不过,如果没有一种简单的方法来判断我们是被导入还是被重新加载,我会的。

最佳答案

documentation for reload()实际上给出了一个代码片段,我认为它应该适合您的目的,至少在通常情况下是这样。你会做这样的事情:

try:
reloading
except NameError:
reloading = False # means the module is being imported
else:
reloading = True # means the module is being reloaded

这实际上是检测模块是否被“干净地”导入(例如第一次)或者是否覆盖同一模块的先前实例。正常情况下,“干净”导入对应于 import 语句,“脏”导入对应于 reload(),因为 import > 仅真正导入模块一次,即第一次执行时(对于每个给定模块)。

如果您以某种方式设法强制随后执行 import 语句来执行一些重要的操作,或者如果您以某种方式设法使用 reload() 首次导入模块 code>,或者如果你弄乱了导入机制(通过 imp 模块或类似的),那么所有的赌注都会失败。换句话说,不要指望它在所有可能的情况下总是起作用。

附注你问这个问题的事实让我想知道你是否在做一些你可能不应该做的事情,但我不会问。

关于python - 如何判断 Python 模块是否从模块内重新加载(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com