擅长:python、mysql、java
<pre class="lang-py prettyprint-override"><code>from dataclasses import dataclass, asdict
from enum import Enum
class FoobarEnum(Enum):
FIRST = "foobar"
SECOND = "baz"
@dataclass
class Foobar:
name: str
template: FoobarEnum
def my_dict(data):
return {
field: value.value if isinstance(value, Enum) else value
for field, value in data
}
foobar = Foobar(name="John", template=FoobarEnum.FIRST)
data = {'name': 'John', 'template': 'foobar'}
assert asdict(foobar, dict_factory=my_dict) == data
</code></pre>