gpt4 book ai didi

python - 一个包中的多个模块导入一个公共(public)模块

转载 作者:太空狗 更新时间:2023-10-29 22:07:18 25 4
gpt4 key购买 nike

我正在写一个 python 包。我正在使用插件的概念——其中每个插件都是 Worker 类的特化。每个插件都被编写为一个模块(脚本?)并在一个单独的进程中生成。

由于插件之间的基本通用性(例如,都扩展了基类“Worker”),插件模块通常如下所示:

import commonfuncs

def do_work(data):
# do customised work for the plugin
print 'child1 does work with %s' % data

在 C/C++ 中,我们有 include guards,它可以防止 header 被多次包含。

我是否需要在 Python 中使用类似的东西?如果需要,我如何确保 commonfuncs 不会被多次“包含”?

最佳答案

不用担心:只有在程序执行过程中第一次 import 模块才会被加载。在第一个导入之后的每个进一步导入都只是从“缓存”字典(sys.modules,由模块名称字符串索引)获取模块对象,因此它非常快没有副作用。因此,不需要守卫。

关于python - 一个包中的多个模块导入一个公共(public)模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950557/

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