1. ホーム
  2. python

[解決済み] Pylintの設定を抑制・操作することなく、「関数内のローカル変数が多すぎる」ことを抑制するためのベストプラクティスは何でしょうか?

2022-02-19 06:45:32

質問

Pythonのコードファイルを通常のpylintとpycodestyleで10/10のスコアであることを確認するために作業しています。しかし、私は関数の中で"too many local variable"からハードチェンジを受けています。しかし、関数の中で"too many local variable"からハードチェンジが発生しています。スイート全体のタイミングの問題で、関数は分割することができました。

ありがとうございました。

解決方法は?

情報量が少なすぎるのでは? とはいえ、基本的な考え方は以下のとおりです。

  • いくつかの変数をネストした関数に分割する。 これは、長い関数があり、いくつかのセクションが単に中間結果を生成している場合、意味があります。

  • NamedTupleを使用する。これは、データベースの行やピンの信号など、配列を個々のフラグに分割する場合に有効です。

例えば

from collections import namedtuple
Record = namedtuple('Record', 'course name id midterm1 midterm2 homework')
input_array_line = ['botony', 'chad', '123456', 88.0, 92.2, 40]
r = Record(*input_array_line)
score = (r.midterm1 + r.midterm2) * .45 + (r.homework/40.0) * 10.0

  • ローカル変数のグループにはディクショナリを使用します。
  • もっと難しく考えよう。 もし分解できない、20の可動部分がある問題があるなら、もっと単純な問題が出てこようとしているはずです。

頑張ってください。 コーディングを続けよう! メモをとっておいてください。