1. ホーム
  2. python

[解決済み] ラムダでprintが効かないのはなぜ?

2022-04-23 18:42:22

質問

なぜうまくいかないのですか?

lambda: print "x"

これは単文ではなく、他のものなのでしょうか? ラムダで何が許されるのか、ドキュメントがちょっとまばらな気がするのですが......。

どのように解決するのですか?

A lambda のボディは、必ず 単一表現 . Python 2.xでは print は文です。しかし、Python 3では print 関数 (そして、関数の応用は式なので、ラムダで動作します)。最新の Python 2.x を使っているのであれば、バックポートされた print 関数を使うことができます(前方互換性のためにそうすべきです :)。

In [1324]: from __future__ import print_function

In [1325]: f = lambda x: print(x)

In [1326]: f("HI")
HI