我看到类似
的内容 celerybeat:
<<: *django
在https://github.com/pydanny/cookiecutter-django示例泊坞文件中。
这是什么意思?我不能谷歌<<: *
答案 0 :(得分:0)
<<
和*
都是YAML键(您也可以将它们视为运算符)。与您的问题相关的另一个关键是&
。
在YAML中,您可以定义锚点,然后再使用它们。例如,
foo: &myanchor
key1: "val1"
key2: "val2"
bar: *myanchor
在此代码段中,&
定义了一个锚名称myanchor
,*myanchor
引用该锚点。现在,foo
和bar
都具有相同的键和值。
<<
称为YAML 合并密钥。您可以将它与OOP中的类继承进行比较(不太准确,但可以帮助您理解)。见下面的例子。
foo: &myanchor
key1: "val1"
key2: "val2"
bar:
<< : *myanchor
key2: "val2-new"
key3: "val3"
在此代码段中,我们将foo
中的键和值合并到bar
,但将key2
覆盖为新值。我们将新的键值对添加到bar
。
现在bar
具有以下值:{"bar": {"key1": "val1", "key2": val2-new", "key3": "val3"}}
。
希望有所帮助。