【发布时间】:2018-04-10 07:17:56
【问题描述】:
我对 YAML/JSON 不满意。
我缺少继承。
是否可以将 Python 类的层次结构导出到 YAML/JSON?
这样我可以使用我最喜欢的带有自动完成功能的 IDE 来构建我的数据结构。
在我的例子中,结果应该输入到 SaltStack 中。但这根本与配置管理无关,因为结果应该是纯 YAML/JSON。
我想将类导出到 yaml。永远只有类,永远不会有实例。至少我今天是这么认为的。
我认为使用这个约束是有意义的:类不会有方法,除了属性。并且只有 get-properties,从不 set-properties。
我从https://www.json2yaml.com/获取了示例json
{
"json": [
"rigid",
"better for data interchange"
],
"yaml": [
"slim and flexible",
"better for configuration"
],
"object": {
"key": "value",
"array": [
{
"null_value": null
},
{
"boolean": true
},
{
"integer": 1
}
]
},
"paragraph": "Blank lines denote\nparagraph breaks\n",
"content": "Or we\ncan auto\nconvert line breaks\nto save space"
}
以下是上述 json 在 python 语法中的一个示例:
class json:
data = ['rigi', 'better for data interchange']
class yaml:
data = ['slim and flexible', 'better for configuration']
class object:
key = 'value'
array = [dict(null_value=None), dict(boolean=True), dict(integer=1)]
class paragraph:
data = 'Blank lines denote\nparagraph breaks\n'
class content:
data = '''Or we
can auto
convert line breaks
to save space'''
上面只是简单地介绍了如何使用 python 类创建数据结构。
【问题讨论】:
-
YAML 具有继承性。
-
您要将类定义导出到YAML还是类实例?
-
@flyx 我更新了问题:“我想将类导出到 yaml。永远只有类,永远不会有实例。至少我今天是这么想的。”
-
好吧,那么问题是您要导出什么。只有层次结构还是关于类方法的信息?
-
@flyx 我更新了这个问题:“我认为使用这个约束是有意义的:类不会有方法,除了属性。只有 get-properties,从不 set-properties。”换句话说:类的层次结构和数据。
标签: python json inheritance yaml salt-stack