получаем `object.__doc__` в виде необработанной строки
Вопрос
Есть ли способ получить object.__doc__
как необработанная строка, помимо добавления буквы "r" перед самой доктриной в исходном коде?
У меня есть код latex внутри, и "\ r", "\ f" и т.д. Создают проблемы.
Решение
Нет такого типа Python, как "необработанная строка" - есть необработанная строка литералы, которые являются всего лишь одним синтаксис подход (из многих) к указанию констант (т. е. литералов), которые имеют строковые типы.Так что "получать" что-то "в виде необработанной строки" просто не имеет смысла.Ты можешь писать строки документации в виде необработанных строковых литералов (т.е. с префиксом r
-- это именно то, что обозначает необработанный строковый литерал, специфический синтаксис, который идентифицирует такую константу компилятору Python), или же удваивает любые обратные косые черты в них (альтернативный способ указания постоянных строк, включая символы обратной косой черты), но это не имеет ничего общего с "получением" их тем или иным способом.
Другие советы
разница между необработанной строкой и чем-то иным заключается всего лишь в буквальном синтаксисе исходного кода.после анализа "необработанного" строкового объекта не существует.в результате repr(object.__doc__)
всегда будет так, что вы можете скопировать и вставить результат в исходный скрипт python и получить исходную строку.
рассмотреть:
>>> def foo():
... 'foo\nbar'
... pass
...
>>> foo.__doc__
'foo\nbar'
>>> print foo.__doc__
foo
bar
>>>
Нет, вы должны добавить r. Если вы не добавите r, вы не сможете вернуть исходную строку независимо от того, что вы делаете.
Если вам не нравятся необработанные строки, другая альтернатива - избежать обратной косой черты в строках с помощью дополнительной обратной косой черты.