我正在try 为Python3.11中的新的@enum.nonmember
decorator 设计一个用例.文件明确提到,这是一种旨在应用于成员的装饰品.
然而,当我试着直接装饰一名成员时:
import enum
class MyClass(enum.Enum):
A = 1
B = 2
@enum.nonmember
C = 3
这会导致错误,如:
Traceback (most recent call last):
File "C:\Program Files\Python311\Lib\code.py", line 63, in runsource
code = self.compile(source, filename, symbol)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\codeop.py", line 153, in __call__
return _maybe_compile(self.compiler, source, filename, symbol)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\codeop.py", line 73, in _maybe_compile
return compiler(source, filename, symbol)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\codeop.py", line 118, in __call__
codeob = compile(source, filename, symbol, self.flags, True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<input>", line 9
C = 3
^
SyntaxError: invalid syntax
然而,如果我将属性声明为属性或描述符,它也不会成为Enum成员……那么,你是如何、何时、为什么使用@enum.nonmember
的呢?