В Python 2.7 я заметил, что поведение repr(s)
(с s
является строкой) отличается в зависимости от содержания s
.Почему Python использует разные кавычки для представления строк в зависимости от их содержимого?
Вот что я имею в виду:
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
, сложнее писать.
Python - это все, что позволяет разработчикам использовать его. Это так * так гораздо проще написать строку, которая имеет «попугай», я имею в виду цитаты «в них» или «« Просто используйте это », я сказал». И проще читать, чем '' \ "Просто используйте это \", я сказал "'. –