今天偶然看到枚举的一种写法,我测试后感觉有些奇怪
import enum
class TestEnum( str,enum.Enum):
A = "a"
这里同时继承了 str 和 Enum , 我测试了一下语句,
repr(TestEnum.A)
>>> "<TestEnum.A: 'a'>"
str(TestEnum.A)
>>> TestEnum.A'
TestEnum.A == 'a'
>>> True
这里的 TestEnum.A == 'a' 结果为 True , 是怎么判断的?
如果 TestEnum 是 dataclass 类的变量,在 json dumps 时也会自动转换,这是怎么做到的?
from dataclasses import dataclass, asdict
import json
@dataclass
class A:
a: TestEnum=None
test_a = A(TestEnum.A)
asdict(test_a)
>>> {'a': <TestEnum.A: 'a'>}
json.dumps(asdict(test_a))
>>> {"a": "a"}
python 版本 3.9.16
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.