gpt4 book ai didi

python - 有没有类似 Python 导出的东西?

转载 作者:太空狗 更新时间:2023-10-29 21:40:25 26 4
gpt4 key购买 nike

我们一直使用 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)

(请注意,我们在导入模块之前收集要导出的对象列表,这样我们就可以避免导出对我们刚刚导入的模块的引用。)

这基本上是猴子修补的一种形式。它有它的时间和地点。当然,要使其工作,必须执行“导出”的模块本身;简单地导入将要打补丁的模块不会神奇地意识到某处的其他代码会打补丁。

关于python - 有没有类似 Python 导出的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14163532/

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