gpt4 book ai didi

使用 elif 的 Python 赋值和函数测试

转载 作者:太空狗 更新时间:2023-10-29 17:31:36 25 4
gpt4 key购买 nike

我见过类似但不完全相同的问题。我有一个表情

if foo == ....
return -1
elif myFunction(bar) != -1:
return myFunction(bar)
elif ...

我不想计算 myFunction(bar) 两次。如果它只是一个 if,我可以做到

temp = myFunction(bar)
if temp != -1
return temp

然而,如果我们要遵循初始的 if,那么使用 elif 会导致不必要的 temp 计算。

我可以看到一个解决方案,使用一个

if ...
else
temp = myFunction(bar)
if temp != -1:
return temp
elif ...

但现在开始变得更丑陋了。有没有更好的方法来实现这一目标?

最佳答案

如果您经常这样做,那么拥有一个 memoizing decorator 可能是值得的大约。当前标准库中唯一的内存器(对于较新的 Python 3.x)是 lru_cache,它有点矫枉过正,但显示了总体思路:

>>> def func():
... print("foo")
... return 1
...
>>> if func():
... print(func())
...
foo
foo
1

现在内存func:

>>> from functools import lru_cache
>>> func = lru_cache(1)(func)
>>> if func():
... print(func())
...
foo
1

关于使用 elif 的 Python 赋值和函数测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785572/

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