Python 3.x Python3 |向枚举条目添加装饰器

Python 3.x Python3 |向枚举条目添加装饰器,python-3.x,enums,python-decorators,Python 3.x,Enums,Python Decorators,所以,我有一个可以读取特定文件的库(文件布局不受我的控制)。这些文件有不同的版本,每个版本都添加了更多的功能。我有代表一些特征的枚举。现在有了最新的更新,新条目应该添加到枚举中。但是,当用户尝试在旧版本中使用新功能时,我希望能够给他们一个警告(或例外) 我认为装饰程序可能是一种方式,标记某些值和函数,例如:@from_version('1.40')或类似的东西。我从来没有创建过自己的装饰师,所以我对他们不太熟悉 最后一个问题是,文件的版本不是全局可用的。(我不能添加静态文件,因为应该可以同时打开

所以,我有一个可以读取特定文件的库(文件布局不受我的控制)。这些文件有不同的版本,每个版本都添加了更多的功能。我有代表一些特征的枚举。现在有了最新的更新,新条目应该添加到枚举中。但是,当用户尝试在旧版本中使用新功能时,我希望能够给他们一个警告(或例外)

我认为装饰程序可能是一种方式,标记某些值和函数,例如:
@from_version('1.40')
或类似的东西。我从来没有创建过自己的装饰师,所以我对他们不太熟悉

最后一个问题是,文件的版本不是全局可用的。(我不能添加静态文件,因为应该可以同时打开多个文件)。所以我甚至不确定装饰师是否是未来的方向

现在我尝试向枚举项添加装饰器,但没有成功:

import enum
>>> def hello_world(f):
...     def decorated(*args, **kwargs):
...         print('Hello World!')
...     return decorated
... 
>>> class A(enum.Enum):
...     @hello_world()  # Tried with and without ()
...     ABC = 1
  File "<input>", line 3
    ABC = 1
    ^
SyntaxError: invalid syntax

提前感谢您的帮助

您想要的是一个单独的答案,但为了解释您遇到的问题--装饰器只能用于函数和类(
def
class
),不能用于属性(如
ABC=1

class EnumClass(Enum):
    @from_version('1.40')
    ENTRY = 0