-2

コマンドを実行しようとしています:

'"Isn\'t," she said.'

出力は次のとおりです。 "Isn\'t," she said.

出力がそうでない理由: "Isn't," she said.

これはどういうルールか分かる人いますか?ありがとう

4

2 に答える 2

4

reprオブジェクトを表す 2 つの異なる方法 (と)の違いがわかりますstr

>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>> print '"Isn\'t," she said.'
"Isn't," she said.

最初のケースでは、python はデフォルトで using を使用しますreprが、print関数/ステートメントはstr暗黙的に uses を使用します。これら 2 つの方法の主な違いは、次のデータ モデルで示唆されていることに注意してくださいobject.__repr__

可能であれば、これは同じ値を持つオブジェクトを再作成するために使用できる有効な Python 式のように見えるはずです (適切な環境が与えられた場合)。

つまり、使用でき、eval(repr('"Isn\'t," she said.'))機能します。(この動作はすべてのオブジェクトで保証されているわけではなく、単に推奨されています。文字列は非常に単純なオブジェクトであるため、動作します)。ただし、eval(str('"Isn\'t," she said.'))引用の問題があるため、機能しません。

于 2013-06-19T19:03:09.700 に答える