gpt4 book ai didi

Python:通过多个文件定义一个模块

转载 作者:太空狗 更新时间:2023-10-30 00:15:00 24 4
gpt4 key购买 nike

假设我有一个名为 mymodule 的 python 模块。在我的代码的顶部,我有这个:

import mymodule
reload(mymodule)

我的目录结构在哪里

/dir/mymodule.py

但是,我想将 mymodule.py 拆分成几个文件,同时仍被定义为单个模块(即我不想分别导入每个文件 - 我想能够像以前一样使用我的导入/重新加载)。

我知道如何做到这一点的唯一方法如下

/dir/mymodule/
file1.py
file2.py
__init__.py

其中 __init__.py 包含

from file1 import *
from file2 import *

这主要是有效的,但我对 reload(mymodule) 的调用不再执行任何操作,因为它不会重新加载通过 * imports 调用的任何内容。

有什么建议吗?

最佳答案

我可以建议一个快速解决方法

import sys

def myreload(base_module_name):
for module_name, module in sys.modules.items():
if module_name.startswith(base_module_name):
reload(module)

myreload('mymodule')

这将调用 reload(mymodule.file1)reload(mymodule.file2)

但是,它不是递归的,并且由于您使用的是 ipython,我相信您的问题已得到很好的回答 here .

关于Python:通过多个文件定义一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16094083/

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