【Python】lambda式を使うときに気をつけたいこと

みなさま、lambda式はご存知でしょうか。

Pythonにおいてlambdaとは無名関数を表現するもので、関数を名前付けされずに定義できる優れものです。

lambda x: 2*x

(こんな風に書いてコロンの左側が引数、右側が返り値を表します。)

わりと頻繁にお目に掛かるのでご存知の方も多いかと思いますが、このlambdaの使い方で気をつけたいことがあります。それは、PEP8というPythonコーディング規約において、lambdaを変数に代入することは非推奨となっているということです。

要は、下記のような書き方はやめようねということです。

f = lambda x: 2*x

その心についてはこちら*1を見て頂ければと思いますが、一行で関数を表現できる利便性ゆえ、こういうコードにしばしば出くわします。

f:id:mimosom:20190521193439p:plain:w250

あくまで推奨・非推奨の話なので、こう書いたからと言って何か大きな問題があるわけではないですが、避けれるならば避けた方が無難でしょう。実際、コード内でf(3)のような記述があるとdef f(x):を探しに行くのが人の性ですから、変数みたいに扱われているとちょっと迷ってしまいます。

たまたま今日読んでいたコードにこういう書き方が何度も出てきたので、ふと思い立ってブログに残した次第です。
今日もお疲れ様でした。

コメント