gpt4 book ai didi

python - 避免或延迟对可能不会使用的事物进行评估

转载 作者:行者123 更新时间:2023-12-04 13:28:31 24 4
gpt4 key购买 nike

Python中如何实现惰性求值?几个简单的例子:

>>> def foo(x):
... print(x)
... return x
...
>>> random.choice((foo('spam'), foo('eggs')))
spam
eggs
'eggs'

上面,我们并不是真的需要评估这个元组的所有项目,才能选择一个。及以下,默认 foo()除非字典中确实缺少查找键,否则实际上不需要计算:
>>> d = {1: "one"}
>>> d.get(2, foo("default"))
default
'default'
>>> d.get(1, foo("default"))
default
'one'

我正在寻找一种 Pythonic 的方式来重构像上面这样的例子来懒惰地评估。

最佳答案

在 Python 中进行惰性求值的标准方法是使用 generators .

def foo(x):
print x
yield x

random.choice((foo('spam'), foo('eggs'))).next()

顺便提一句。 Python 也允许 generator expressions ,所以下面这行不会预先计算任何东西:
g = (10**x for x in xrange(100000000))

关于python - 避免或延迟对可能不会使用的事物进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802981/

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