以下不适用于我,使用 Python 3.4.7,ruamel.yaml 版本 0.15.35:
import sys
import enum
import ruamel.yaml
from ruamel.yaml import yaml_object
yaml = ruamel.yaml.YAML()
@yaml_object(yaml)
class Speed(enum.IntEnum):
Reverse = 0
Neutral = 1
Low = 2
Drive = 3
Park = 999
print("Neutral:", repr(Speed.Neutral))
yaml.dump(Speed.Neutral, sys.stdout)
我得到一个完全合理的repr
:
Neutral: <Speed.Neutral: 1>
但.dump()
加薪:
ruamel.yaml.representer.RepresenterError: cannot represent an object: <enum 'Speed'>
如果enum
不支持,我可以做些什么来扩展enum
我正在使用的类(或enum.IntEnum
我创建的子类),例如 dunder 方法?