【发布时间】:2021-06-17 18:56:31
【问题描述】:
我有一个派生自 enum.Enum 的类。 现在 enum.Enum 中的 repr 指的是 enum.Enum 的成员,而不是整个类。
举例
from enum import Enum
class endpoints(Enum):
""" shop """
shop = 'shop'
countries = 'countries'
policies = 'policies'
print(endpoints)
结果
<enum 'endpoints'>
我尝试了什么
from enum import Enum
class endpoints(Enum):
shop = 'shop'
countries = 'countries'
policies = 'policies/{object_id}'
@classmethod
def __repr__(cls):
return '\n'.join([str(member.name) + ':' + (member.value) for member in cls.__members__])
print(endpoint)
结果
<enum 'endpoints'>
这表明 repr 实际上是 endpoints.member。repr 我需要的是端点。repr?
我知道这可以通过元类here 来实现,但由于 Enum 本身有一个元类,我不能从另一个元类继承/分配。
没有修改 enum.Enum 我该如何实现我的目标。
想要的输出如下。
print(endpoints)
shop : shop
countries : countries
policies : policies/{object_id}
【问题讨论】:
-
您的minimal reproducible example 有语法错误。无法复制。
-
@wwii 修复了错误
标签: python class enums metaclass repr