如何在Python枚举字段中添加弃用警告



给定以下枚举:

class MyEnum(enum.Enum):
Field1 = "Field1"
Field2 = "Field2" # should be deprecated for `Field3`
Filed3 = "Field3"

我想在字段中添加一个弃用警告,这样当我调用MyEnum.Field2MyEnum("Field2")时,将返回一个<MyEnum.Field3: 'Field3'>枚举实例以及一个弃用警报。

这样做的正确方法是什么?有没有python语言功能可以做到这一点?

到目前为止,我只通过重载__missing__方法为案例MyEnum("Field2")(而不是MyEnum.Field2(添加了一个自定义的弃用警告,如下所示:

import enum
class MyEnum(enum.Enum):
@classmethod
def _missing_(cls, value: object):
"""Add deprecation warningt to Field2"""
if str(value) == "Field2":
print("Field name `Field2` for `MyEnum` enum is deprecated.")
return cls.Field3
return value
Field1 = "Field1"
# Field2 = "Field2" # should be deprecated 
Field3 = "Field3"

最新更新