Строка документа Python: тройная двойная кавычка v.s. Двойная цена
Каков предпочтительный способ записи строки документа Python?
"""
или "
В книге Dive Into Python
: http://www.diveintopython.net/getting_to_know_python/documenting_functions.html автор предоставляет следующий пример:
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
В другой главе: http://www.diveintopython.net/object_oriented_framework/index.html#fileinfo.divein автор дает еще один пример:
def stripnulls(data):
"strip whitespace and nulls"
return data.replace("\00", "").strip()
Оба синтаксиса работают. Единственное различие для меня в том, что """
позволяет нам писать многострочный документ.
Есть ли какая-то разница, кроме этого?
Ответы
Ответ 1
Из Руководство по стилю PEP8:
-
PEP 257 описывает хорошие соглашения с docstring. Обратите внимание, что большинство
важно, что "", которое заканчивается многострочной докшлинной, должно быть на
строка сама по себе, например:
"""Return a foobang
Optional plotz says to frobnicate the bizbaz first.
"""
-
Для одного лайнера docstrings, это нормально держать закрытие "" на
та же линия.
PEP 257 рекомендует использовать тройные кавычки, даже для однострочных docstrings:
- Тройные кавычки используются, даже если строка соответствует одной строке. Эта
упрощает его дальнейшее расширение.
Обратите внимание, что даже стандартная библиотека Python сама по себе не следует этим рекомендациям. Например,
Ответ 2
Они обе строки, поэтому нет никакой разницы. Предпочтительный стиль - тройные двойные кавычки (PEP 257):
Для согласованности всегда используйте """triple double quotes"""
вокруг docstrings.
Используйте r"""raw triple double quotes"""
, если вы используете любые обратные косые черты в ваших документах. Для docstrings Unicode используйте u"""Unicode triple-quoted strings"""
.
Ответ 3
Нет, не совсем. Если вы пишете файл, использование тройных кавычек может быть идеальным, потому что вам не нужно использовать "\n", чтобы перейти вниз. Просто убедитесь, что кавычки, которые вы начинаете и заканчиваете, имеют один и тот же тип (двойные или тройные кавычки). Вот надежный ресурс, если у вас есть еще вопросы:
http://docs.python.org/release/1.5.1p1/tut/strings.html