gpt4 book ai didi

Python:如何用枚举值污染命名空间

转载 作者:行者123 更新时间:2023-12-01 02:58:23 25 4
gpt4 key购买 nike

很好奇以前是否有人这样做过。

我想用枚举值污染我的命名空间。

例如,在我的代码中,我想引用 RED、GREEN 和 BLUE,而不是 Color.RED、Color.GREEN 和 Color.BLUE。

最简单的方法是在定义枚举后,输入 RED = Color.RED , GREEN = Color.GreenBLUE = Color.BLUE ...但我想保持它干燥(不要重复自己),这意味着当我向枚举添加新颜色时,我不想也将其显式添加到命名空间。

如果定义 class Color(Enum): 后就好了你可以from Color import *

我可以写一个pollute_enum()会与 locals() 胡闹的函数或其他什么,但从 locals() 开始将该函数移动到实用程序包中会是一个问题那里会指别的东西。我知道有些模块可以遍历调用堆栈,但现在这变得非常棘手。

最佳答案

我不太确定您为什么要这样做,但您可以动态更新模块中的locals

注意:不推荐

import enum

class Color(enum.Enum):
RED = 1
GREEN = 2
BLUE = 3

locals().update({color.name: color for color in Color})

关于Python:如何用枚举值污染命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027343/

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