web-dev-qa-db-ja.com

Python 3:%sと.format()を使用

ようやく、2.xコードで_%_から.format()文字列フォーマット演算子に切り替えて、将来3.xへの移行を容易にしました。 _%_スタイルの書式設定がPy3に残っているだけでなく、標準ライブラリコードで広く使用されていることを知って少し意外でした。 '(%s)' % variableを書くのは'({})'.format(variable)よりも少し短く、理解しやすいので、論理的に思えます。しかし、私はまだ疑っています。コードで両方のアプローチを使用することは適切ですか(pythonic?)?ありがとうございました。

24
Zaur Nasibov

Python 3.2のドキュメントによると、_%_は最終的にはなくなる予定です。

http://docs.python.org/3.2/tutorial/inputoutput.html#old-string-formatting

str.format()は非常に新しいため、多くのPythonコードは引き続き_%_演算子を使用します。ただし、この古いスタイルのフォーマットは最終的には言語、str.format()が一般的に使用されます。

しかし @ regileroが言うという文は3.3からなくなっているため、実際にはそうではない可能性があります。同じことを示唆するいくつかの会話 here があります。

Python 3.4の段落7.1.1 の時点では次のようになっています。

%演算子は、文字列のフォーマットにも使用できます。左の引数を、右の引数に適用されるsprintf()スタイルのフォーマット文字列と同じように解釈し、このフォーマット操作の結果の文字列を返します。

参照 Python 3.4 4.7.2 printf-style String Formatting。

24
Vlad