【发布时间】:2015-01-11 05:06:22
【问题描述】:
在某些情况下,使用 Python lambda 来定义内联回调很方便。
some_func(callback=lambda: foo())
但是,如果回调期望返回值,与函数无关,那就有点尴尬了。
假设我们希望函数返回一个常量。
some_func(callback=lambda: (foo(), False)[1])
...另一种解决方法:
def tail(*args):
return args[-1]
some_func(callback=lambda: tail(foo(), False))
注意,False 仅作为示例,也可以是命名空间中的变量。
some_func(callback=lambda: (foo(), some_variable)[1])
虽然这工作起来相当丑陋/尴尬,但有没有办法在不制作临时列表/元组的情况下格式化表达式?
【问题讨论】:
标签: python-3.x lambda