Pythonには、少なくとも6つの文字列フォーマット方法があります。
In [1]: world = "Earth"
# method 1a
In [2]: "Hello, %s" % world
Out[2]: 'Hello, Earth'
# method 1b
In [3]: "Hello, %(planet)s" % {"planet": world}
Out[3]: 'Hello, Earth'
# method 2a
In [4]: "Hello, {0}".format(world)
Out[4]: 'Hello, Earth'
# method 2b
In [5]: "Hello, {planet}".format(planet=world)
Out[5]: 'Hello, Earth'
# method 2c
In [6]: f"Hello, {world}"
Out[6]: 'Hello, Earth'
In [7]: from string import Template
# method 3
In [8]: Template("Hello, $planet").substitute(planet=world)
Out[8]: 'Hello, Earth'
さまざまな方法の簡単な履歴:
printf
スタイルのフォーマットは、Pythonの初期の頃からありました- この
Template
クラスはPython 2.4で導入されました - この
format
メソッドはPython 2.6で導入されました f
-stringsはPython 3.6で導入されました
私の質問は:
- された
printf
スタイルの書式設定は、非推奨または廃止されるになるだろうか? - では
Template class
、あるsubstitute
方法は非推奨または廃止されるになるだろうか?(私はについて話していないsafe_substitute
、それは理解しているようにそれがユニークな機能を提供する)
同様の質問と、それらが重複していないと思う理由:
Python文字列のフォーマット:%vs. .format —メソッド1と2のみを扱い、どちらが優れているかを尋ねます。私の質問は、PythonのZenに照らして非推奨について明示的にです
文字列フォーマットオプション:長所と短所 —質問ではメソッド1aと1b、回答では1と2のみを扱い、非推奨については何も処理しません
高度な文字列フォーマットとテンプレート文字列 —ほとんどがメソッド1と3についてであり、非推奨には対応していません
文字列フォーマット式(Python) — 元の '%'アプローチは廃止される予定であると回答が述べています。しかし、廃止予定、廃止予定、実際の廃止の違いは何ですか?また、
printf
-styleメソッドはを発生させないPendingDeprecationWarning
ので、これは本当に非推奨になりますか?この投稿もかなり古いため、情報が古くなっている可能性があります。
Formatter
クラスを忘れたことを指摘する必要がありますか?