1. ホーム
  2. python

[解決済み] PEP 8、キーワード引数やデフォルトのパラメータ値で '=' の周りにスペースがないのはなぜですか?

2022-09-07 11:36:31

質問

なぜ の周りにスペースを置かないことを推奨しているのでしょうか? = キーワード引数やデフォルトのパラメータ値で ?

の周りにスペースを推奨することと矛盾していますか? = の周りにスペースを入れることを推奨することと矛盾しますか?

どのようにです。

func(1, 2, very_long_variable_name=another_very_long_variable_name)

よりも良い。

func(1, 2, very_long_variable_name = another_very_long_variable_name)

Python の BDFL による議論や説明のリンクがあれば、感謝します。

この質問はデフォルト値よりもkwargsに関するもので、PEP 8のフレーズを使用しただけです。

私は意見を求めているのではありません。この決定の背後にある理由を尋ねているのです。それはむしろ なぜ を使うのか? { と同じ行に if 文ではなく、Cプログラムの かどうか を使うべきかどうかではありません。

どのように解決するのですか?

キーワード引数と変数代入は本質的に異なるからでしょう。

例えば、こんなコードがたくさんあります。

kw1 = some_value
kw2 = some_value
kw3 = some_value
some_func(
    1,
    2,
    kw1=kw1,
    kw2=kw2,
    kw3=kw3)

ご覧の通り、全く同じ名前のキーワード引数に変数を代入するのは完全に理にかなっているので、スペースを入れずに見た方が可読性が高まります。キーワード引数を使用していること、変数をそれ自身に代入していないことを認識するのがより簡単です。

また、パラメータは同じ行に入る傾向があるのに対し、代入は通常それぞれが独立した行になるので、スペースを節約することはそこで重要な問題になりそうです。