首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >哪个更像pythonic:微不足道的lambda还是一个都没有?

哪个更像pythonic:微不足道的lambda还是一个都没有?
EN

Stack Overflow用户
提问于 2018-06-08 08:52:46
回答 1查看 240关注 0票数 2

当一个函数接受一个函数参数(或者一个类有一个函数槽)时,有两种方法可供选择:

def foo(..., my_func=None, ...):
    ...
    if my_func:
        my_func(...)
    ...

def foo(..., my_func=(lambda ...: None), ...):
    ...
    my_func(...)
    ...

哪一个更具有Pythonic风格/清晰/可读性?

哪个更快--额外的布尔检查还是简单的函数调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 09:25:41

使用此命令时:

>>> def bar():
...     print("Goodbye, World!")
...

我发现这是非常可读性的:

>>> def foo(my_func = lambda : None):
...     my_func()
...
>>> foo()
>>> foo(bar)
Goodbye, World!

我觉得这毫无意义的烦人

>>> def baz(my_func = None):
...     if my_func is not None:
...         my_func()
...
>>> baz()
>>> baz(bar)
Goodbye, World!

试着在你的生活中不做任何检查。当你想让它做它擅长的事情时,使用None :在你的脸上爆炸。不要要求它安静。不管怎样,如果你使用它,它会产生恼人的噪音。

哪个更快--额外的布尔检查还是简单的函数调用?

为什么,以上帝的名义,你会在意?

根据记录,我发现这是可读的,但过于宽松:

>>> def buz(my_func = lambda **k:None):
...     my_func()
...
>>> buz(bar)
Goodbye, World!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档