Необработанная буквенная строка Python

Более формальное решение:

TAG:

<p:treeTable styleClass="tree-table-no-header">

Стиль:

.tree-table-no-header thead {
    display: none;
}
13
задан anothernode 4 July 2018 в 10:04
поделиться

2 ответа

Необработанные строковые литералы не обрабатывают обратную косую черту как начальные escape-последовательности , за исключением , когда следующий сразу за ним символ является кавычкой, ограничивающей литерал, и в этом случае обратная косая черта экранирует его.

Мотивация дизайна заключается в том, что необработанные строковые литералы на самом деле существуют только для удобства ввода шаблонов регулярных выражений - вот и все, нет другой цели дизайна не существует для таких литералов. И шаблоны RE никогда не должны заканчиваться обратной косой чертой, но они могут включать в себя всевозможные кавычки, откуда и происходит правило.

Многие люди действительно пытаются использовать необработанные строковые литералы, чтобы позволить им вводить пути Windows так, как они привыкли (с обратной косой чертой), но, как вы заметили, это использование не работает, когда вам действительно нужен путь, заканчивающийся на обратная косая черта. Обычно самым простым решением является использование косых черт вперед , которые среда выполнения C Microsoft и все версии Python поддерживают как полностью эквивалентные в путях:

s = 'c:/path/to/folder/'

(примечание: не shadow встроенные имена, такие как str , с вашими собственными идентификаторами - это ужасная практика, без каких-либо преимуществ, и если вы не приобретете привычку избегать этой ужасной практики, однажды вы обнаружите, что у вас есть неприятное -отладка, когда некоторая часть вашего кода попирает встроенное имя, а другая часть должна использовать встроенное имя в его реальном значении).

35
ответ дан 1 December 2019 в 17:58
поделиться

Это IMHO несогласованность в Python, но это описано в документации. Перейдите ко второму последнему абзацу:

http://docs.python.org/reference/lexical_analysis.html#string-literals

r "\" не является допустимым строковым литералом (даже необработанная строка не может заканчиваться нечетное количество обратных косых черт)

9
ответ дан 1 December 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: