gpt4 book ai didi

python - 防止列表理解中的多次调用

转载 作者:太空狗 更新时间:2023-10-30 01:00:54 24 4
gpt4 key购买 nike

<分区>

使用下面的示例,我们可以看到 x.giveMyNum() 将被调用 4 次 - 3 次检查 myNum 的值,一次构建要返回的列表。您可能希望它只被调用 3 次,因为它是一个纯函数并且它的值不会改变。

列表理解版:

class test(object):
def __init__(self,myNum):
self.myNum=myNum
def giveMyNum(self):
print "giving"
return self.myNum
q=[test(x) for x in range(3)]
print [x.giveMyNum() for x in q if x.giveMyNum()>1]

我知道你可以做这样的事情来修复它:

ret=[]
for x in q:
k=x.giveMyNum()
if k>1:
ret.append(k)

但是有没有办法防止列表理解中的额外调用?

我不需要保留中间值。

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