我正在写一个 python 包。我使用插件的概念 - 每个插件都是 Worker 类的专门化。每个插件都被编写为模块(脚本?)并在单独的进程中生成。
由于插件之间的基本共性(例如,所有插件都扩展基类“Worker”),插件模块通常如下所示:
import commonfuncs
def do_work(data):
# do customised work for the plugin
print 'child1 does work with %s' % data
在 C/C++ 中,我们有包含防护,它可以防止标头被多次包含。
我在 Python 中是否需要类似的东西,如果是,我如何确保 commonfuncs 不会被“包含”多次?
不用担心:只有first import
在程序执行过程中调用模块会导致其被加载。在第一个导入之后的每个进一步导入都只是从“缓存”字典中获取模块对象(sys.modules
,由模块名称字符串索引),因此速度非常快and没有副作用。因此,不需要防护。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)