gpt4 book ai didi

python - 如何避免从Python模块加载特定变量

转载 作者:行者123 更新时间:2023-12-01 04:15:20 24 4
gpt4 key购买 nike

(我已经检查过 Does Python have “private” variables in classes? ——它询问类而不是模块。因此,那里的答案不涵盖我感兴趣的 import 。)

考虑一下,有一个名为 X 的模块与变量 y 。如果任何其他模块尝试 import模块X ,如何避免加载变量y在Python中?

例如:

# x.py
y=10

然后我们在其他模块中使用它:

import x 
print x.y

如何避免从模块 x.py 访问 x.y ?

最佳答案

如果您导入模块,则无法隐藏任何全局成员,这是故意的:the module object returned is the "true" one ,与模块成员使用的完全相同。 Dirty hacks like __getattr__ are also prohibited for modules.

一种方法是用前导下划线标记“内部”实体,以提示用户它们不适合外部使用。对于引用您导入的其他模块来说,这不是必需的,因为指南明确禁止外部使用它们(唯一的异常(exception)是引用的模块无法以正常方式访问)。

from module import *时但是,您不会获得模块引用,而是将其中的内容直接导入到当前命名空间中。默认情况下,除了以下划线开头的名称之外的所有内容都会被导入。您可以通过定义 __all__ 来覆盖它模块属性。

关于python - 如何避免从Python模块加载特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383103/

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