4

関数some_descriptively_named_functiontuple4 つのうち 4 つの戻りパラメーターを返すとします。を呼び出しsome_descriptively_named_function、80 文字の行の長さ制限を守り、4 つの出力すべてをそれぞれわかりやすい名前の変数にアンパックします。

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = some_descriptively_named_function() 

1 つのオプションは次のとおりです。

some_desc_name1, some_desc_name2, some_desc_name3, some_desc_name4 = (
    some_descriptively_named_function()
)

ただし、4 つのアンパックされた値を使用すると、これでも行の長さが押し上げられる可能性があります。そして、それぞれの議論について簡単にコメントしたい場合、うまくレイアウトするのは簡単ではありません。

以下は機能しますが、これが良いと見なされるか非常に悪いと見なされるかは不明です。

(some_desc_name1, # Comment 1
 some_desc_name2, # Comment 3
 some_desc_name3, # Comment 3
 some_desc_name4  # Comment 4
) = some_descriptively_named_function()

行の長さには確かに適していますが、PEP8 が行の先頭にある括弧にどのように適用されるかを考えるのは奇妙です。

これに関する確立された (できれば PEP8 関連の) Python スタイル ガイドラインはありますか?

4

2 に答える 2

5

あなたのフォーマットLGTMですが、いくつかの提案があります:

(some_desc_name1,
 some_desc_name2,
 some_desc_name3,
 some_desc_name4) = some_descriptively_named_function()
  • 呼び出し機能を引き出してより明確にする
  • アンパックされた変数をコメントしないでください。の docstringsome_descriptively_named_function()は、これらを明確に定義する必要があります。
于 2016-04-27T21:52:11.560 に答える
0

関数がタプルを返す場合、値はすべて関連しており、個別のコメントは必要ありません。その説明は、おそらく関数定義内に座っているほうが理にかなっているでしょう。最初のオプションは、関数の結果を 4 つの異なる変数にすばやく設定する最適なソリューションです。別のオプションは、単純にタプル全体を変数として使用することです。

some_desc_name1 = some_descriptively_named_function()
print some_desc_name1[0] # Comment 1
于 2014-03-27T02:27:21.097 に答える