gpt4 book ai didi

python - 在 python 中共享和扩展枚举列表?

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:45 24 4
gpt4 key购买 nike

假设您有一个通用模块并且

it defines KEY_1, KEY_2. 

你有其他模块使用公共(public)模块并以这样的方式扩展它

module_a defines KEY_A1 KEY_A2
module_b defines KEY_B1 KEY_B2

我想在某处构建所有键的列表:

[KEY_1, KEY_2, KEY_A1, KEY_A2, KEY_B1, KEY_B2]  

并从任何地方访问列表。

我可以从在公共(public)模块中定义一个全局可访问的列表开始。
但是我该如何插入其他模块的值呢?

-- 模块_a.py --

import common_module

KEY_A1 = 10
KEY_A2 = 11

common_module.the_list.append(KEY_A1)
common_module.the_list.append(KEY_A2)

defs..
classes..

如果从其他代码多次导入 module_a.py,KEY_A1 不会被追加多次吗?

最佳答案

不,模块中的代码只执行一次,即第一次导入模块时。这就是 sys.modules 字典的目的:它记录哪些模块已经被导入。每次导入首先检查 sys.modules。如果要导入的模块名称已经是该字典中的键,则只需从该字典中检索模块对象。否则(正在导入的模块的名称不在该字典中)模块的文件被执行以创建模块对象,并且 sys.modules 被更新以记录新的模块名称 -> 模块对象对。

关于python - 在 python 中共享和扩展枚举列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136736/

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