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." }
deflights_message(language, number_of_lights): """Return a language-appropriate string reporting the light count.""" return LIGHT_MESSAGES[language] % locals()
defis_pirate(message): """Return True if the given message sounds piratical.""" return re.search(r"(?i)(arr|avast|yohoho)!", message) isnotNone
Простым английским языком: строковые литералы могут быть заключены в соответствующие одинарные кавычки (') или двойные кавычки (").
Таким образом, разницы нет. Вместо этого люди скажут вам выбрать любой стиль, который соответствует контексту, и должен быть последовательным. И я бы согласился, добавив, что бессмысленно пытаться придумать "соглашения" для такого рода вещей, потому что в конечном итоге вы только запутаете новичков.
Ответ 3
Раньше я предпочитал ', особенно для '''docstrings''', как я нахожу"""this creates some fluff""". Кроме того, ' можно печатать без Shift клавиши на моей швейцарско-немецкой клавиатуре.
С тех пор я перешел на использование тройных кавычек для """docstrings""", чтобы соответствовать PEP 257.
Ответ 4
Я с Уиллом:
Двойные кавычки для текста
Одинарные кавычки для всего, что ведет себя как идентификатор
Исходные строковые литералы в двойных кавычках для регулярных выражений
Утроенные двойные кавычки для строк документации
Я буду придерживаться этого, даже если это означает много экранирования.
Я получаю максимальную отдачу от идентификаторов, заключенных в одинарные кавычки, выделяющихся из-за кавычек. Остальные методы предназначены только для того, чтобы предоставить этим идентификаторам, заключенным в одинарные кавычки, некоторое свободное пространство.