小编Sal*_*dar的帖子

如何重写枚举构造函数?

我想创建一个存储二进制值的枚举,但我可以向其传递任何值(它将存储value % 2)。

\n\n

也就是说:我想使用EnumPython3 中的“官方”类型,但更改构造函数。

\n\n

我尝试了这段代码:\xc2\xa0

\n\n
from enum import Enum\n\nclass Color(Enum):\n    black = 0\n    red = 1\n\n    def __new__(cls, value):\n        super().__new__(cls, value % 2)\n\n    def __str__(self):\n        return self.name\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我收到一个错误:

\n\n
>>> from ZCasino import *\nValueError: 0 is not a valid Couleur\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\n  File "/home/felix/T\xc3\xa9l\xc3\xa9chargements/ZCasino.py", line 12, in <module>\n    class Couleur(Enum):\n  File "/usr/lib/python3.8/enum.py", line 212, in …
Run Code Online (Sandbox Code Playgroud)

python enums constructor overriding python-3.x

4
推荐指数
1
解决办法
4839
查看次数

标签 统计

constructor ×1

enums ×1

overriding ×1

python ×1

python-3.x ×1