在Python 2.7中,我注意到repr(s)
(s
为字符串)行为因s
的内容而异。
这就是我的意思:
In [1]: print repr("John's brother")
"John's brother"
In [2]: print repr("system")
'system'
请注意不同的引号类型。
从我的测试中看来,只要s
包含'
字符,所代表的字符串就会引用"
,除非字符串也包含(转义) )"
字符。
这是我的意思的一个例子:
In [3]: print repr("foo")
'foo'
In [4]: print repr("foo'")
"foo'"
In [5]: print repr("foo'\"")
'foo\'"'
现在我明白它没有区别,因为repr
不能提供有关确切输出格式的任何保证,但我很好奇为什么Python开发人员决定了这些:
doctests
之类的东西更难写。答案 0 :(得分:5)
Python试图给出字符串repr
的最“自然”表示。
因此,例如,如果字符串包含"
,则会使用'
因为"that's the ticket"
看起来比'that\'s the ticket'
好。
实际上有四种引用字符串的方法:单引号 - '
和"
- 以及三引号 - """
和'''
。有这四种方法,因为能够自然地编写字符串而不转义其中的内容会更好。