получаем `object.__doc__` в виде необработанной строки

StackOverflow https://stackoverflow.com/questions/1817064

  •  08-07-2019
  •  | 
  •  

Вопрос

Есть ли способ получить 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, вы не сможете вернуть исходную строку независимо от того, что вы делаете.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top