我喜欢在用于插值或自然语言消息的字符串周围使用双引号,对于类似符号的小字符串使用单引号,但是如果字符串包含引号,或者如果我忘记了,则会违反规则。我对docstring使用三重双引号,对于正则表达式使用原始字符串文本,即使不需要它们。
例如: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