Мне нравится использовать двойные кавычки вокруг строк, которые используются для интерполяции или которые являются сообщениями естественного языка и одинарными кавычками для подобных мелкому символу строк, но нарушат правила, если строки содержат кавычки, или если я забываю. Я использую тройные двойные кавычки для 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
Вот новые образцы расширяемости Visual Studio 10