Pourquoi:Pourquoi impossible d'utiliser print() dans une expression lambda?
p = lambda s: print(s)
syntaxe non valide, mais:
def do_print(s):
print(s)
p = lambda s: do_print(s)
valide?
Pourquoi:Pourquoi impossible d'utiliser print() dans une expression lambda?
p = lambda s: print(s)
syntaxe non valide, mais:
def do_print(s):
print(s)
p = lambda s: do_print(s)
valide?
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.
sa la façon dont la langue est lu il ne peut pas faire p = lambda s: print(s)
en une seule étape
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
dans 2.7 vous pouvez faire 'from __future__ importer print_function' pour unifier ce –
J'utilise python 2.6.6 – david4dev
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 –
@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
khachik, oui, j'ai mis à jour. – user225312