Mic*_*ael 1 python enums python-3.x
如果我有一个像这样设置的枚举类
class fruits(enum.IntEnum):
apples = 0
bananas = 1 # deprecated
pears = 2 # deprecated
strawberries = 3
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以动态获取未弃用的枚举(基本上只获取苹果和草莓?它们仅通过注释进行标记,我不喜欢创建一组“已弃用”通知
您将需要一些额外的代码来支持该用例。我将使用1来展示它:aenum
from aenum import IntEnum
class Fruits(IntEnum):
_init_ = 'value active'
#
apples = 0, True
bananas = 1, False # deprecated
pears = 2, False # deprecated
strawberries = 3, True
#
@classmethod
def active(cls):
return [m for m in cls if m.active]
#
@classmethod
def deprecated(cls):
return [m for m in cls if not m.active]
Run Code Online (Sandbox Code Playgroud)
并在使用中:
>>> list(Fruits)
[<Fruits.apples: 0>, <Fruits.bananas: 1>, <Fruits.pears: 2>, <Fruits.strawberries: 3>]
>>> Fruits.apples
<Fruits.apples: 0>
>>> Fruits.bananas
<Fruits.bananas: 1>
>>> Fruits.active()
[<Fruits.apples: 0>, <Fruits.strawberries: 3>]
>>> Fruits.deprecated()
[<Fruits.bananas: 1>, <Fruits.pears: 2>]
Run Code Online (Sandbox Code Playgroud)
1声明:我是Python stdlibEnum、enum34backport和Advanced Enumeration ( aenum) 库( stdlib 的直接替代品enum)的作者。
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |