Какие-либо проблемы с использованием '' 'блочной строки для комментирования блоков в yaml? - PullRequest
0 голосов
/ 14 мая 2018

Я использовал ''' для комментариев к блоку в yaml.Например:

'''
This
is 
a
comment
'''

Я заметил, что этот подход не является одним из ответов на вопрос Как блокировать комментарии в вопросе yaml .Есть ли причина, по которой этого не делать (кроме ужасных многострочных глюков в VIM)?Это загружается в память или что-то еще, что может быть проблематичным?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

YAML комментарии начинаются с #, отделенного от других токенов пробелами, и заканчиваются в конце строки

Если вы делаете:

'''
This
is
a
comment
'''

Вы указываете скалярный узел, который начинается и заканчивается одной (1) одинарной кавычкой. Это связано с тем, что в скалярных узлах в стиле с одинарными кавычками вы можете вставить одинарную кавычку, экранируя ее одной кавычкой. Так как YAML выполняет разворачивание строки, указанные выше загружаются как строка ' This is a comment ' (строка, включающая кавычки).

Однако, если вы вставите это как комментарий после скалярного узла, например 42 как в:

answer: 42 '''
  This
  is
  a
  comment
  '''

У вас все еще есть действительный YAML, но он будет загружен, например. в Python как dict с ключом answer и связанным значением 42 ''' This is a comment '''. Строка, которая, вероятно, выдаст вам ошибку, если вы ожидаете целочисленное значение 42.

0 голосов
/ 14 мая 2018

В зависимости от спецификации используйте только #: http://yaml.org/spec/1.2/spec.html#comment/

А почему? Если не считать «потому что они так сказали», я бы предположил, что часть читабельности YAML теряется из-за многострочных комментариев.

Вы используете '' '- стандарт для строк документации Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...