我加载在Python(2.7.10)与子模块from app import sub,其中sub有一个config变量。因此,我可以运行print sub.config并查看一堆配置变量。不是超级复杂。
如果我在脚本中更改了配置变量,则必须有一种方法可以重新加载模块并查看更改。我发现了一些说明可以使用的指令reload(app.sub),但出现错误:
NameError: name 'app' is not defined
Run Code Online (Sandbox Code Playgroud)
如果我这样做reload(sub),错误是:
TypeError: reload() argument must be module
Run Code Online (Sandbox Code Playgroud)
如果可以,import app我可以使用查看配置print app.sub.config并重新加载reload(app)
-如果我这样做import app然后跑步
我找到了自动重新加载的说明: 在IPython中重新加载子模块
但是没有办法手动重新加载子模块吗?
小智 8
使用 python3,我试试这个:
import importlib
import sys
def m_reload():
for k,v in sys.modules.items():
if k.startswith('your-package-name'):
importlib.reload(v)
Run Code Online (Sandbox Code Playgroud)
小智 0
当你from foo import bar,你现在有一个在你的命名空间中命名的模块对象bar,所以你可以
from foo import bar
bar.do_the_thing() # or whatever
reload(bar)
Run Code Online (Sandbox Code Playgroud)
如果您想了解有关不同导入表单如何工作的更多详细信息,我个人发现这个答案特别有帮助。
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |