云烟成雨 发表于 2023-12-13 18:59

python的reload怎么导入模块全部变量

python的import支持一次性导入模块中所有的变量:from Global import *
由于import重复使用无法刷新模块内容,所以现在用了reload
可是reload不支持from写法,只能reload(Global)
我怎么实现跟import一样reload模块的全部内容?一个个写有点太麻烦了

相位猛冲 发表于 2023-12-13 20:31

import importlib
from Global import *

# 在需要重新加载模块的地方
importlib.reload(Global)

云烟成雨 发表于 2023-12-14 08:07

相位猛冲 发表于 2023-12-13 20:31
import importlib
from Global import *



这样会直接报错的,reload不支持from,import的时候不能用from,否则reload就会认为没有import,不信你试试

wapjsx 发表于 2023-12-14 08:22

记得,在你需要时再from Global import * 一次,就表示reload的呀???

还有,为什么需要reload? 不重载不行吗?

云烟成雨 发表于 2023-12-14 08:26

wapjsx 发表于 2023-12-14 08:22
记得,在你需要时再from Global import * 一次,就表示reload的呀???

还有,为什么需要reload? 不 ...

不行的,import多次导入的模块内容是一样的,import进来的是副本,不会更新,我的需求是被导入的模块可能会在脚本运行的时候发生变化,所以需要每次运行函数的时候重载模块内容,只有reload模块内容才会更新,import是不会重载的,你可以试试

sai609 发表于 2023-12-14 10:24

用循环函数

云烟成雨 发表于 2023-12-19 17:07

sai609 发表于 2023-12-14 10:24
用循环函数

代码示例上个?怎么个循环法?

hange13 发表于 2023-12-19 17:09

本帖最后由 hange13 于 2023-12-19 17:35 编辑

我记得在 Python 3.4 之后,是不是reload 函数被移动到了 importlib 模块中,并且在 Python 3.4 之后的版本中,reload 函数已经不再推荐使用。相反,建议使用 importlib.reload 函数。

云烟成雨 发表于 2023-12-19 17:45

hange13 发表于 2023-12-19 17:09
我记得在 Python 3.4 之后,是不是reload 函数被移动到了 importlib 模块中,并且在 Python 3.4 之后的版本 ...

我用的就是importlib.reload
页: [1]
查看完整版本: python的reload怎么导入模块全部变量