我尝试按照此处的说明进行操作,这使我得到了以下代码:
import yaml
class Step(yaml.YAMLObject):
yaml_tag = "!step"
def __init__(self, *args, **kwargs):
raise Exception("Intentionally.")
yaml.load("""
--- !step
foo: bar
ham: 42
""")
预期的行为:我得到一个例外。但我观察到的是,我的 YAML 标记会生成一个Step
实例,并且我可以使用它、访问方法、属性(如foo
上面的代码)等等。阅读文档,我找不到我的错误,因为它建议使用所有键值对作为关键字参数调用构造函数。
基本上文档中的示例有效,但不是因为构造函数的实现,而是因为键值对(的属性Monster
)用于填充对象的字典。
这里有人知道吗?
我正在使用 python3,但在 python2 中进行了快速评估并观察到了相同的结果。
编辑
我想做的是:留在链接的示例(文档)中,如果Monster
sname
以 a 开头,则将 .B
的值加倍ac
。