¿Por qué es:¿Por qué no se puede imprimir() en una expresión lambda?
p = lambda s: print(s)
sintaxis no válida, pero:
def do_print(s):
print(s)
p = lambda s: do_print(s)
válida?
¿Por qué es:¿Por qué no se puede imprimir() en una expresión lambda?
p = lambda s: print(s)
sintaxis no válida, pero:
def do_print(s):
print(s)
p = lambda s: do_print(s)
válida?
El cuerpo de un lambda tiene que ser una expresión, no una afirmación. print
es una afirmación.
Actualización: Como se señaló, en 2.x, print
es una afirmación, mientras que en Python 3, es una función.
su camino el idioma se lee que no puede hacer p = lambda s: print(s)
en un solo paso
la versión de Python está usando ?; en Python 2.7 (y antes), la impresión es una declaración mientras que en Python 3 es una función
en 2.7 se puede hacer 'desde __future__ import print_function' para unificar esto –
Estoy usando python 2.6.6 – david4dev
en python 2.6.6,' print' es una sentencia y como tal no puede ocurrir en expresiones lambda, el El uso de una función de ajuste como en su ejemplo es la solución recomendada –
@sukhibr de acuerdo con [docs] (http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is- a-function) 'print()' es una función. – khachik
khachik, sí, lo he actualizado. – user225312