[解決済み] PylintによるCell-var-from-loopの警告。
2022-12-07 16:43:44
質問
以下のコードについて。
for sort_key, order in query_data['sort']:
results.sort(key=lambda k: get_from_dot_path(k, sort_key),
reverse=(order == -1))
Pylintがエラーを報告しました。
セル変数 sort_key がループ内で定義されている (cell-var-from-loop)
どなたか、ここで何が起こっているのかヒントをいただけないでしょうか?pylintのソースコードからは以下のように記述されています。
クロージャで使用される変数がループで定義されています。 これにより、すべてのクロージャが同じ値を使用することになります。 を使うことになります。
しかし、私はそれが何を意味するのか手がかりを持っていません。どなたか問題の例をあげていただけませんか?
どのように解決するのですか?
名前
sort_key
の本文にある
lambda
は実際に関数が呼ばれたときにルックアップされるので、 値は
sort_key
が直近で持っていた値を見ることになります。を呼び出しているのですから
sort
をすぐに呼んでいるので
sort_key
の値は、結果の関数オブジェクトが使用される前に変更されないので、警告を無視しても安全です。この警告を無視するには
sort_key
へのパラメータのデフォルト値を
lambda
:
results.sort(key=lambda k, sk=sort_key: get_from_dot_path(k, sk),
reverse=(order == -1))
関連
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] スコーピングルールの簡単な説明?
-
[解決済み】JavaScriptでクロージャの実用的な使い方は?
-
[解決済み】ラムダ関数のクロージャは何を捕捉するのか?
-
[解決済み】JavaScriptのクロージャと無名関数の比較
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] if 節の終了方法
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] ネストされた関数のローカル変数