我喜欢在用于插值的字符串周围使用双引号或者是自然语言消息,对于类似小符号的字符串使用单引号,但如果字符串包含引号,或者如果我忘记,则会破坏规则。我对正则表达式使用三重双引号用于文档字符串和原始字符串文字,即使它们不需要也是如此。
例如:
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
在https://docs.python.org/2.0/ref/strings.html 上引用官方文档:
用简单的英语:字符串文字可以用匹配的单引号(')或双引号(“)括起来。
所以没有区别。相反,人们会告诉您选择与上下文匹配的风格, 并保持一致 。我同意 - 并补充说,尝试为这类事情提出 “惯例” 是没有意义的,因为你最终会混淆任何新人。
我以前喜欢'
,特别是'''docstrings'''
,因为我发现"""this creates some fluff"""
。此外, '
可以在我的瑞士德语键盘上键入而不使用Shift键。
我已经改为使用"""docstrings"""
三重引号,以符合PEP 257 。