我有以下Python类。
from enum import Enum
class Color(Enum):
red = 1
blue = 2
green = 3
但是当我尝试创建一个对象时
color = Color()
它抛出错误告诉
TypeError: __call__() takes at least 2 arguments (1 given)
另一个预期的论点是什么。
答案 0 :(得分:2)
根据source code中的docstring(请注意,此方法是在元类EnumMeta
上定义的):
当枚举类被赋予匹配值时,[
__call__
]被使用 枚举成员(即Color(3)
)和功能API (即Color = Enum('Color', names='red green blue')
)。
所需的位置参数value
可以是现有枚举器的值之一,也可以是新枚举器的名称。