2010-12-07 38 views

Répondre

6

Le corps d'un lambda doit être une expression, pas une déclaration. print est une déclaration.

Mise à jour: Comme indiqué, dans 2.x, print est une instruction en Python 3, c'est une fonction.

+0

@sukhibr selon les [docs] (http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is- a-function) 'print()' est une fonction. – khachik

+0

khachik, oui, j'ai mis à jour. – user225312

-1

sa la façon dont la langue est lu il ne peut pas faire p = lambda s: print(s) en une seule étape

5

version de python utilisez-vous ?; en python 2.7 (et avant), l'impression est une déclaration tout en python 3, il est une fonction

+1

dans 2.7 vous pouvez faire 'from __future__ importer print_function' pour unifier ce –

+0

J'utilise python 2.6.6 – david4dev

+0

dans python 2.6.6,' print' est une instruction et en tant que tel ne peut pas se produire dans les expressions lambda, le l'utilisation d'une fonction d'enveloppement comme dans votre exemple est la solution de contournement recommandée –