Python中有什么类似"void lambda"的东西吗?

Cof*_*ker 4 python lambda dictionary void python-2.7

也就是说,一个没有输入并且不返回任何内容的lambda.

我正在考虑在Python中模仿switch语句的聪明方法.这是我的尝试(无济于事):

statement = {
    "Bob": lambda: print "Looking good, Bob!",
    "Jane": lambda: print "Greetings, Jane!",
    "Derek": lambda: print "How goes it, Derek?"
}[person]()
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 7

lambda函数的内容必须是单个表达式; 不允许任何陈述.而且,print是Python 2.x中的一个声明.这意味着你不能在lambda中使用它.

如果你想使用Python 3.x print函数,可以__future__像这样导入它:

# Add this line to the top of your script file
from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)

现在,print可以在lambdas中使用,因为它是一个函数:

statement = {
    "Bob": lambda: print("Looking good, Bob!"),
    "Jane": lambda: print("Greetings, Jane!"),
    "Derek": lambda: print("How goes it, Derek?")
}[person]()
Run Code Online (Sandbox Code Playgroud)