gpt4 book ai didi

python - 如何导入模块(或重新加载,如果以前导入)

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

我有一个模块 my_module.py 包含:

var = 9

这个模块是动态导入和修改的:

import importlib

def f(name):
mod = importlib.import_module(name)
importlib.reload(mod)
return mod

print(f(name='my_module').var) # Prints 9

# Changes var to 912
with open('my_module.py', 'a+') as opened:
opened.write('12')

print(f(name='my_module').var) # Prints 912

我的 f() 函数在确保重新加载后返回一个模块对象。

它有效,但我想知道是否有更好的方法来确保返回的模块对象总是被重新加载。

最佳答案

您可以在通过 hashlib 重新加载之前计算和验证文件的哈希值,或者如果 lib 已更改,则仅使用修改日期作为指示符。或者,您可以在修改后发送信号,并使用信号处理程序进行实际重新加载。后者可能是最有效的,因为如果更改,lib 实际上只是重新加载。它甚至可以与散列组合以确保它确实已被修改。

关于python - 如何导入模块(或重新加载,如果以前导入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565557/

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