生の文字列として `object .__ doc__`を取得
質問
object .__ doc __
を生の文字列として取得する方法はありますか?
内部にラテックスコードがあり、「\ r」、「\ f」などが問題を引き起こしています。
解決
" raw string"などのPythonタイプはありません。 -生の文字列 literals があります。これは、(多くの)定数(つまり、リテラル)を指定するための1つの構文アプローチです文字列型の。したがって、「取得」何か「生の文字列として」意味がありません。 docstringsを生の文字列リテラルとして書く(つまり、接頭辞 r
を付けることができます。これはまさに、生の文字列リテラル、そのような定数を識別する特定の構文を示します。 (Pythonコンパイラ)、またはバックスラッシュを2つ重ねる(バックスラッシュ文字を含む定数文字列を指定する代替方法)が、それは" get"とは何の関係もない;それらを何らかの方法で。
他のヒント
生の文字列とそうでないものとの違いは、ソースコードのリテラル構文の問題です。一度解析すると、「生の」文字列オブジェクトはありません。 repr(object .__ doc __)
の結果は常に結果をコピーしてPythonソーススクリプトに貼り付け、元の文字列を取得できるようになります。
考慮:
>>> def foo():
... 'foo\nbar'
... pass
...
>>> foo.__doc__
'foo\nbar'
>>> print foo.__doc__
foo
bar
>>>
いいえ、rを追加する必要があります。 rを追加しないと、何をしても元の文字列を確実に戻すことができません。
生の文字列が気に入らない場合は、文字列内のバックスラッシュをバックスラッシュでエスケープすることもできます。
所属していません StackOverflow