Вопрос-Ответ

Single quotes vs. double quotes in Python [closed]

Одинарные кавычки против двойных кавычек в Python



Согласно документации, они в значительной степени взаимозаменяемы. Есть ли стилистическая причина использовать одно поверх другого?

Переведено автоматически
Ответ 1

Мне нравится использовать двойные кавычки вокруг строк, которые используются для интерполяции или которые представляют собой сообщения на естественном языке, и одинарные кавычки для небольших символьных строк, но это нарушит правила, если строки будут содержать кавычки, или если я забуду. Я использую тройные двойные кавычки для docstrings и необработанные строковые литералы для регулярных выражений, даже если они не нужны.

Например:

LIGHT_MESSAGES = {
'English': "There are %(number_of_lights)s lights.",
'Pirate': "Arr! Thar be %(number_of_lights)s lights."
}

def lights_message(language, number_of_lights):
"""Return a language-appropriate string reporting the light count."""
return LIGHT_MESSAGES[language] % locals()

def is_pirate(message):
"""Return True if the given message sounds piratical."""
return re.search(r"(?i)(arr|avast|yohoho)!", message) is not None
Ответ 2

Цитирую официальные документы по адресу https://docs.python.org/2.0/ref/strings.html:


Простым английским языком: строковые литералы могут быть заключены в соответствующие одинарные кавычки (') или двойные кавычки (").


Таким образом, разницы нет. Вместо этого люди скажут вам выбрать любой стиль, который соответствует контексту, и должен быть последовательным. И я бы согласился, добавив, что бессмысленно пытаться придумать "соглашения" для такого рода вещей, потому что в конечном итоге вы только запутаете новичков.

Ответ 3

Раньше я предпочитал ', особенно для '''docstrings''', как я нахожу"""this creates some fluff""". Кроме того, ' можно печатать без Shift клавиши на моей швейцарско-немецкой клавиатуре.

С тех пор я перешел на использование тройных кавычек для """docstrings""", чтобы соответствовать PEP 257.

Ответ 4

Я с Уиллом:


  • Двойные кавычки для текста

  • Одинарные кавычки для всего, что ведет себя как идентификатор

  • Исходные строковые литералы в двойных кавычках для регулярных выражений

  • Утроенные двойные кавычки для строк документации

Я буду придерживаться этого, даже если это означает много экранирования.

Я получаю максимальную отдачу от идентификаторов, заключенных в одинарные кавычки, выделяющихся из-за кавычек. Остальные методы предназначены только для того, чтобы предоставить этим идентификаторам, заключенным в одинарные кавычки, некоторое свободное пространство.

2024-01-27 14:16 python