Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why can't print() be used in a lambda expression?

Why is:

p = lambda s: print(s)

invalid syntax but:

def do_print(s):
    print(s)
p = lambda s: do_print(s)

valid?

like image 423
david4dev Avatar asked Dec 07 '10 19:12

david4dev


2 Answers

The body of a lambda has to be an expression, not a statement. print is a statement.

Update: As pointed out, in 2.x, print is a statement while in Python 3, it is a function.

like image 189
user225312 Avatar answered Oct 28 '22 12:10

user225312


which version of python are you using?; in python 2.7 (and before), print is a statement while in python 3 it's a function

like image 5
Dan D. Avatar answered Oct 28 '22 11:10

Dan D.