PyYAML - 如何处理作文

时间:2017-02-14 13:47:09

标签: python yaml composition

我一直在尝试使用YAML,因为我喜欢它的可读性。

然而,我对于放入组件/处理组合的最佳方式感到有些困惑。

让我们说这是我试图复制的课程:

basicai = aggressiveAI()

fightercomponent = fighter(strength=10, dexterity=5, death=dramaticdeath())

orc = Object(name='orc', hp=100, fighter=fightercomponent, ai=basicai)

在YAML中做这样的事情的最好方法是什么?

大多数情况下,我希望能够最终找到一长串特定命名的组件对象和主要对象。

1 个答案:

答案 0 :(得分:1)

假设你有适当的构造函数和表示者来创建对象,你可以这样做:

- !AggresiveAI &basicai 
- !Fighter &fightercomponent
     strength: 10
     dexterity: 5 
     death: dramaticdeath
- !Object 
    name: orc
    hp: 100
    fighter: *fightercomponent
    ai: *basicai

唯一有问题的是你对dramaticdeath的函数调用,因为YAML存储对象而不是函数调用。因此,在类__init__的{​​{1}}方法中,从字符串到函数进行查找

顶级不必是一个列表,你可以例如使顶层映射。在使用别名之前,请确保定义锚点。