我一直在使用'''
在yaml中进行块注释。像:
'''
This
is
a
comment
'''
我注意到这种方法不是How do you block comment in yaml问题的答案之一。有没有理由不这样做(除了VIM中可怕的多行字符串格式故障)?它会被加载到内存或其他可能有问题的东西吗?
答案 0 :(得分:1)
YAML comments以#
与其他具有空格的标记分开,并在行尾终止
如果你这样做:
'''
This
is
a
comment
'''
指定标量节点,以一(1)个单引号开头和结尾。这是因为在single quoted style标量节点中,您可以通过使用单引号转义它来插入单引号。由于YAML确实将上述加载作为字符串' This is a comment '
(包含引号的字符串)展开。
但是,如果您在42
之类的标量节点之后将其作为注释插入,如下所示:
answer: 42 '''
This
is
a
comment
'''
您仍然拥有有效的YAML,但这会加载例如在Python中作为带有键answer
和关联值42 ''' This is a comment '''
的词典。一个字符串,如果您期望整数值42
,可能会给您一些错误。
答案 1 :(得分:0)
根据规范,仅使用#: http://yaml.org/spec/1.2/spec.html#comment/
至于为什么? “因为他们这么说”,我猜想YAML的一些可读性会因多行注释而丢失。
你使用'''是Python文档字符串的标准。