如何在cons中轻松地重新加载/重新导入模块

2024-04-16 22:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在处理模块时,我使用repl(python控制台)来测试功能。你知道吗

我试图解决的问题是在修改后很容易地重新加载模块并重新导入模块对象。你知道吗

一个例子说明了这个问题。你知道吗

在控制台中,我开始测试a.b.c包中的函数

>>> from a.b.c import *
>>> myFunction(1)
wrong answer

我返回到文本编辑器并修复我的函数 现在我想重新测试它(我不想终止repl并重新启动它,因为我可能有一些要重用的测试变量)

所以我必须这样做:

>>> import a.b.c
>>> from importlib import reload
>>> reload(a.b.c)
>>> from a.b.c import *
>>> myFunction(1)
hopefully the right answer

我想写一个函数,可以一次完成重新加载和重新导入。你知道吗

理想的情况下,我想用类似

>>> myTestReload(a.b.c)
>>> myFunction(1)
hopefully the right answer

在myTestReload()函数中,我可以使用reload(a.b.c)来重新加载修改后的模块,但是我没有找到一种方法来执行from a.b.c import *的等效操作


Tags: 模块the对象函数answerfromimport功能
1条回答
网友
1楼 · 发布于 2024-04-16 22:13:29

这将重置globals这里有一个itertools的例子。你知道吗

import itertools
from itertools import *
from importlib import reload

itools = reload(itertools)

for k, v in itools.__dict__.items():
    if k in globals():
            globals()[k] = v

相关问题 更多 >