今天偶然看到枚举的一种写法,我测试后感觉有些奇怪
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
