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

在python中共享和扩展枚举列表?,python,module,Python,Module,假设您有一个公共模块和 it defines KEY_1, KEY_2. 您还有其他使用公共模块的模块,并以如下方式对其进行扩展: 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] 并从任何地方访问列表 首先,我可以在通用模块中定义一个全局可访问列表。 但是如何插入来自其他模块的

假设您有一个公共模块和

it defines KEY_1, KEY_2. 
您还有其他使用公共模块的模块,并以如下方式对其进行扩展:

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]  
并从任何地方访问列表

首先,我可以在通用模块中定义一个全局可访问列表。
但是如何插入来自其他模块的值呢

--模块a.py--


如果模块a.py从其他代码导入多次,是否会多次追加键?

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

我想不是。。它不会发生在同一个运行时。
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..