我们一直使用 python 的导入机制来导入模块、变量和其他东西。但是,有什么可以作为导出的吗?喜欢:
我们从模块导入东西:
from abc import *
那么我们可以像这样导出吗?:
to xyz export *
或者
将a、b、c导出到program.py
我知道这个问题不是在这里问的典型问题类型..但只是出于好奇..我检查了python控制台,没有任何东西作为“导出”存在..也许它以不同的名称存在。 .?
首先,导入您想要导出内容的模块,这样您就可以引用它。然后将要导出的内容分配为模块的属性:
# to xyz export a, b, c
import xyz
xyz.a = a
xyz.b = b
xyz.c = c
要进行通配符导出,您可以使用循环:
# to xyz export *
exports = [(k, v) for (k, v) in globals().iteritems() if not k.startswith("_")]
import xyz
for k, v in exports: setattr(xyz, k, v)
(请注意,我们收集要导出的对象列表before导入模块,这样我们就可以避免导出对刚刚导入的模块的引用。)
这基本上是猴子修补的一种形式。它有它的时间和地点。当然,为了让它工作,执行“导出”的模块本身必须被执行;简单地导入将要修补的模块不会神奇地意识到某个地方的其他代码将对其进行修补。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)