gpt4 book ai didi

python - 是否有等效于 Perls 'package' 关键字的 Python

转载 作者:行者123 更新时间:2023-12-04 16:57:11 25 4
gpt4 key购买 nike

我想知道 Python 是否提供了类似于 Perl 中的 package 关键字的东西。这个关键字实际上在代码中的任何地方创建了一个带标签的命名空间。

据我所知,Python 中的类似命名空间只能通过将该代码放入文件并导入来实现。但是,如果我将代码放在一个变量中(例如,从我脚本的某个配置文件中读取)呢?

换句话说:有没有办法在任意命名空间内评估 Python 代码?在 Perl 中,我只想添加

package my_pack;

在该代码的开头,然后对其进行评估(在名为 my_pack 的命名空间内)

谢谢你的帮助。

最佳答案

不,Perl 和 Python 的模块系统的工作方式非常不同。无法显式声明特定的 Python 模块。

对于 Python eval()exec()应该在特定模块的上下文中执行代码,考虑哪些方面为您的目的定义了这个模块——重要的方面可能是该模块的全局变量。您可以明确提供这些,并通过 globals() 捕获当前环境。功能。环境只是一个字典,如果你想避免修改模块的环境,你可以复制它。

关于python - 是否有等效于 Perls 'package' 关键字的 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51721061/

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