【发布时间】:2014-04-11 17:12:19
【问题描述】:
def basket(name, colour, smell, rotten=None):
if rotten:
if rotten():
return "Can't eat!"
return ("The fruit, {}, is {} in colour"
"and smells like {}.".format(name, colour, smell))
在上面的示例代码中,参数rotten(如果提供)在调用之前会被检查。它必须是一个返回布尔值的函数(为简单起见,没有参数)。它使用两行代码,我不确定这是否是此过程的常规样式。我想到的另一种方法是将当前的替换为:
def basket(name, colour, smell, rotten=lambda: None):
if rotten(): # Saved a line here
return "Can't eat!"
return ("The fruit, {}, is {} in colour"
" and smells {}.".format(name, colour, smell))
lambda 方法节省了一行;除此之外,我不知道哪个比另一个有优势。这样做的最佳方法是什么?它在标准库代码的任何地方都可以找到吗?
【问题讨论】:
标签: python function lambda arguments