在yaml中使用”’块字符串进行块注释的任何问题?

Any issues with using ''' block string for block commenting in yaml?

我一直在yaml中使用'''进行块注释。 喜欢:

1
2
3
4
5
6
'''
This
is
a
comment
'''

我注意到这种方法不是你如何在yaml问题中阻止评论的答案之一。 有没有理由不这样做(除了VIM中可怕的多行字符串格式故障)? 是否会加载到内存或其他可能有问题的地方?


YAML注释以#与其他具有空格的标记分开,并在行尾终止

如果你这样做:

1
2
3
4
5
6
'''
This
is
a
comment
'''

您指定一个标量节点,以一(1)个单引号开头和结尾。这是因为在单引号样式标量节点中,您可以通过使用单引号转义它来插入单引号。由于YAML确实将上述加载作为字符串' This is a comment '(包含引号的字符串)展开。

但是,如果您在像42之类的标量节点之后插入它作为注释,如:

1
2
3
4
5
6
answer: 42 '''
  This
  is
  a
  comment
  '''

你仍然有有效的YAML,但这将加载例如在Python中作为一个带有键answer和相关值42 ''' This is a comment '''的dict。一个字符串,如果你期望整数值42,它可能会给你一些错误。


根据规范,仅使用#:
http://yaml.org/spec/1.2/spec.html#comment/

至于为什么?"因为他们这么说",我猜想YAML的一些可读性会因多行注释而丢失。

你使用'''是Python文档字符串的标准。