gpt4 book ai didi

python - Python 中有单行闭包函数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:52 25 4
gpt4 key购买 nike

我一直很好地利用这个通常在我需要的时候定义的函数,因为它太小了:

def func(_lambda, *args):
return _lambda(*args)

[func((lambda x: (("fizbuz" if x%5==0 else "fiz")
if x%3==0 else ("buz" if x%5==0 else x))), x)
for x in list(range(1,101))]

Python 中是否有与此等效的内置函数?

最佳答案

看看 functools.partial ( docs )。

从广义上讲,您看到的是这样的东西:

from functools import partial

def func(*args):
# your logic here

myfunc = partial(func, *args)

如果需要,可以将额外的参数传递给 myfunc;来自 docs 的示例很好地证明了这一点:

>>> from functools import partial
>>> basetwo = partial(int, base=2)
>>> basetwo('10010')
18

对于您的情况而言,这些都不是必需的,因为将您的 fizzbuzz 逻辑从列表理解中移出并放入一个单独的函数中,您可以像这样使用它(在我看来,这更容易理解):

[fizzbuzz(x) for x in range(1, 101)]

(虽然部分是袖手旁观的便利技巧。)

关于python - Python 中有单行闭包函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59140321/

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