0

object.__doc__ソースコードでドクトリング自体の前に「r」を追加する以外に、生の文字列として取得する方法はありますか?

内部にラテックスコードがあり、「\ r」、「\f」などが問題を引き起こしています。

4

3 に答える 3

7

「生の文字列」のようなPython型はありません。生の文字列リテラルがあります。これは、文字列型の定数(つまり、リテラル)を指定するための(多くの)構文アプローチの1つにすぎません。したがって、「生の文字列として」何かを「取得」することは意味がありません。docstringを生の文字列リテラル(つまり、生の文字列リテラルを正確に表す接頭辞-Pythonコンパイラrに対してそのような定数を識別する特定の構文)として記述するか、バックスラッシュを2倍にすることができます(代替バックスラッシュ文字を含む定数文字列を指定する方法)が、それは何らかの方法でそれらを「取得」することとは何の関係もありません。

于 2009-11-29T23:01:33.603 に答える
2

いいえ、rを追加する必要があります。rを追加しないと、何をしても元の文字列を確実に取り戻すことができません。

生の文字列が気に入らない場合、他の方法は、余分なバックスラッシュを使用して文字列内のバックスラッシュをエスケープすることです。

于 2009-11-29T22:58:07.947 に答える
2

生の文字列とそれ以外の違いは、ソースコードのリテラル構文の問題です。一度解析されると、「生の」文字列オブジェクトはありません。の結果repr(object.__doc__)は常に、結果をコピーしてPythonソーススクリプトに貼り付け、元の文字列を取得できるようになります。

検討:

>>> def foo():
...     'foo\nbar'
...     pass
...
>>> foo.__doc__
'foo\nbar'
>>> print foo.__doc__
foo
bar
>>>
于 2009-11-29T23:00:31.497 に答える