[解決済み】E731 ラムダ式を代入せず、defを使用する。
2022-04-05 01:53:04
質問
ラムダ式を使用するとpep8の警告が出ます。ラムダ式は推奨されないのでしょうか?もしそうでなければ、なぜですか?
解決方法は?
での推奨事項は PEP-8 にぶつかっているのは
という代入文の代わりに、必ずdef文を使用します。 は、ラムダ式を直接名前にバインドします。
はい。
def f(x): return 2*x
いいえ。
f = lambda x: 2*x
最初の形式は、結果として得られる 関数オブジェクトは、一般的な '<lambda>' ではなく、特別に 'f' となります。 これは、トレースバックや文字列表現においてより有用です。 一般的に 代入文の使用で、唯一の欠点である ラムダ式が明示的なdef文より優れている点 (より大きな式の中に埋め込むことができる)。
ラムダを名前に割り当てることは、基本的に、以下の機能を重複させるだけです。
def
- 一般に、混乱を避け、明瞭性を高めるためには、何かを一つの方法で行うのが最善です。
ラムダの正当な使用例は、関数を代入せずに使いたい場合などです。
sorted(players, key=lambda player: player.rank)
一般的に、これを行うことに対する主な議論は、以下の通りです。
def
ステートメントを使用すると、コードの行数が増えます。それに対する私の主な回答は、「そうだ、それでいいんだ」です。コードゴルフをするのでなければ、行数を少なくすることは、やるべきことではありません。
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] Distinct() with lambda?
-
[解決済み] ラムダ式からプロパティ名を取得する
-
[解決済み】C++11のラムダ式って何?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
ピロウズ画像色処理の具体的な活用方法
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python 入出力と高次代入の基礎知識
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。