これは簡単に意見に基づくスレッドになる可能性がありますが、ほとんどの場合、より読みやすく、保守性の高い書式設定が可能です。 「精神的連結」をせずに、最終的な文字列がどのように見えるかを視覚化する方が簡単です。どれが読みやすいですか?
errorString = "Exception occurred ({}) while executing '{}': {}".format(
e.__class__.__name__, task.name, str(e)
)
または:
errorString = "Exception occurred (" + e.__class__.__name__
+ ") while executing '" + task.name + "': " + str(e)
が
%
または
.format()
を使用するかどうかについては、私はより客観的に答えることができる:使用
.format()
。
str.format()
はかなり新しいですので、Pythonのコードの多くは、まだ%
演算子を使用しています:%
はPython Documentationごとに、彼らはすぐに除去することができる、「古いスタイル」で、そして。しかし、この古い形式の書式は最終的に言語から削除されるため、通常はstr.format()
が使用されます。
それ以降のバージョンのドキュメントではこれに言及していませんが、それにもかかわらず.format()
は未来の方法です。これを使って!
連結は高速ですが、それは問題ではありません。コードを読みやすく保守しやすくし、後で最適化するために必要な部分を最適化します。
ACTOR_CACHE_KEY_PREFIX = 'actor_'
def get_actor_info(actor_id):
cache_key = f'{ACTOR_CACHE_KEY_PREFIX}{actor_id}'
パフォーマンスが'{}{}'.format(ACTOR_CACHE_KEY_PREFIX, actor_id)
に匹敵する必要がありますが、間違いなく、より読みやすいです:
あなた自身で確認できます:https://docs.python.org/2/library/timeit.html –
ありがとう@brunodesthuilliers!しかし、これは質問の時間効率の部分だけに答えます。 –
はい、申し訳ありませんがwrt /可読性と慣習では、答えは簡単です: '.format()'を使用してください。 –