【发布时间】:2013-08-04 04:09:33
【问题描述】:
考虑:
blank_fn = lambda *args, **kwargs: None
def callback(x, y, z=''):
print x, y, z
def perform_task(callback=blank_fn):
print 'doing stuff'
callback('x', 'y', z='z' )
这样做的动机是我不必输入逻辑来检查是否已分配回调,因为它默认为空白_fn,它什么都不做。
这行得通,但有什么理由我不应该这样做吗?它是pythonic吗?有更好的方法吗?是否有内置的:
lambda *args, **kwargs: None
【问题讨论】:
-
使用
lambda定义命名函数不是Pythonic,不是。使用def。 -
@Wooble lambda 并不复杂,甚至不复杂。因此,我会说它是 Pythonic。而且超级好用!
标签: python lambda default-arguments