gpt4 book ai didi

python - 更重要的是pythonic : trivial lambda or None?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:32 27 4
gpt4 key购买 nike

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

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

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

什么更 Pythonic/清晰/可读?

什么更快 - 额外的 bool 检查还是简单的函数调用?

最佳答案

使用时:

>>> 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 检查远离您的生活。当你想让它做它擅长的事情时使用无:在你的脸上炸毁。不要要求它安静。如果您使用它,它会以某种方式产生烦人的噪音。

What is faster - an extra boolean check or a trivial function call?

天哪,你为什么要关心?


郑重声明,我发现这可读但过于宽容:

>>> def buz(my_func = lambda **k:None):
... my_func()
...
>>> buz(bar)
Goodbye, World!

关于python - 更重要的是pythonic : trivial lambda or None?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50751941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com