You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一次性将Python Enum成员作为无类名前缀的常量暴露

一次性导入枚举所有成员到全局命名空间的方法

方法1:遍历枚举成员注入全局

不用逐个写赋值语句,直接遍历枚举类的__members__属性,把成员批量加到全局命名空间里:

import enum

class Test(enum.Enum):
    ONE = 1
    TWO = 2
    THREE = 3

# 批量处理所有枚举成员
for name, member in Test.__members__.items():
    globals()[name] = member

# 直接使用,不用加Test前缀
print(ONE)       # 输出 Test.ONE
print(THREE.value)  # 输出 3

方法2:模块化场景用导入语法

如果把枚举类放在单独模块里(比如my_enums.py),可以直接用from ... import *一次性导入所有成员:

my_enums.py代码:

import enum

class Test(enum.Enum):
    ONE = 1
    TWO = 2
    THREE = 3

主脚本中:

from my_enums.Test import *

# 直接使用成员
print(TWO)  # 输出 Test.TWO

注意点

  • 用globals()注入时要留意命名冲突,全局已有的同名变量会被覆盖。
  • 导入后的成员和通过Test.XXX访问的是同一个枚举实例,功能完全一致。

内容的提问来源于stack exchange,提问作者Utkonos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:43:09