import yaml class Monster(yaml.YAMLObject): yaml_tag = u'!Monster'
def init(self, name, hp, ac, attacks): self.name = name self.hp = hp self.ac = ac self.attacks = attacks
def repr(self): return "%s(name=%r, hp=%r, ac=%r, attacks=%r)" % ( self.class.name, self.name, self.hp, self.ac, self.attacks)
yaml.load(""" --- !Monster name: Cave spider hp: [2,6] # 2d6 ac: 16 attacks: [BITE, HURT] """,Loader=yaml.FullLoader)
Monster(name='Cave spider', hp=[2, 6], ac=16, attacks=['BITE', 'HURT'])
print( yaml.dump(Monster( name='Cave lizard', hp=[3, 6], ac=16, attacks=['BITE', 'HURT'])))
"""" !Monster ac: 16 attacks: [BITE, HURT] hp: [3, 6] name: Cave """
import yaml
class Monster(yaml.YAMLObject):
yaml_tag = u'!Monster'
def init(self, name, hp, ac, attacks):
self.name = name
self.hp = hp
self.ac = ac
self.attacks = attacks
def repr(self):
return "%s(name=%r, hp=%r, ac=%r, attacks=%r)" % (
self.class.name, self.name, self.hp, self.ac,
self.attacks)
data = yaml.safe_load(yaml_str) # 安全加载方式
yaml.load("""
--- !Monster
name: Cave spider
hp: [2,6] # 2d6
ac: 16
attacks: [BITE, HURT]
""",Loader=yaml.FullLoader)
Monster(name='Cave spider', hp=[2, 6], ac=16, attacks=['BITE', 'HURT'])
print(
yaml.dump(Monster(
name='Cave lizard', hp=[3, 6], ac=16, attacks=['BITE', 'HURT'])))
输出
""""
!Monster
ac: 16
attacks: [BITE, HURT]
hp: [3, 6]
name: Cave
"""