フォーマット文字列内で '{}'を使用すると、Pythonicと見なされますか?


9

私はあなたが書くことができることを学びました

'{}{}'.format(string_a, string_b)

の代わりに

'{0}{1}'.format(string_a, string_b)

Pythonでは、順番に1つずつスロット化したい場合は、文字列フォーマットパラメータの数字を省略できます。

これはPythonicと見なされますか?

注:「Pythonic」は慣用的なPythonコードを意味するPythonプログラマの間で一般的に使用される用語です。Pythonカルチャー内では、スタイルの質問について明確なコンセンサスが得られる傾向があります。特に、このような非常に具体的な質問の場合、「それを行うには1つ、できれば1つだけの明白な方法があるはずです」という言語の明確な設計哲学を考えると、これは、「Pythonの禅」から引用されています。これは、「Pythonic」とは何かを定義するのに大いに役立つ一連の格言であり、Pythonのすべてのディストリビューションに含まれています(Pythonインタープリターのコマンドラインで入力import thisして確認してください)。


4
@GregHewgill:「Pythonic」はかなり一般的に使用される用語で、基本的に「慣用的なPython」を意味します。質の高いPythonコードの愛好家が文体的に楽しいと感じる種類のPythonコード。
Carson63000 2013

1
この非常に特殊な機能は明らかにPythonに含まれています(実際にはスタイルの質問ではありません)。私の知る限り、「unPythonic」と見なされる言語の機能はありません。
Greg Hewgill、2013

4
参考までに、この{}機能はPython 3.1で導入されました。この追加を促した拡張機能は、問題5237でした。Guidoはその問題について、「これから先に進んで、これを終えてください。これでよかった!」など、いくつかのコメントを持っています。それが「Pythonic」と見なされていない場合、私は何であるかわかりません。
Greg Hewgill、2013

4
この質問の締めくくりに投票している人々に、PythonicであるかどうかはPythonコーディングカルチャーの重要な部分であることを指摘し、コーディングカルチャーはソフトウェアエンジニアリングの重要な要素であると主張します。このサイト。
Ghopper21 2013

2
@Andrea-それはまさに私の最初の考えでしたが、BDFLがそれをPythonでないと考えていると主張するのは難しいです。これに関する彼の引用を見て、私はもう一度PythonのZenを見て、これが「実用性が純粋さを上回っている」のかもしれないと思いましたか?議論の理論的根拠(Gregの回答にリンクされています)は、コード作成者にとって便利です。そしていずれにしても、文字列の書式設定を使用する最も明示的な方法"{a}{b}".format(a=string_a, b=string_b)は、番号付けではありません。とにかく、それは私の憶測と考えの
境界

回答:


12

この{}機能はPython 3.1で導入されました(また、Python 2.7にバックポートされました)。この追加を促した拡張機能は、問題5237でした。Guidoは、この問題について次のようないくつかのコメントをしています。

どうぞこれを終了してください。これでよかった!

このようなBDFLからの推奨を備えた機能は、確かに「Pythonic」と見なされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.