python Lazy evaluation

import sys
# range(5)返回范围类型。 可以迭代该对象以产生数字序列。
# 无论范围有多大,对象始终具有相同的大小
# 这是因为range(5)仅存储start , stop, step值,并在需要时计算每个项目。
# 生成器执行yield语句时,程序将暂停当前函数的执行,并将yield的值返回给调用方。
# 这是“惰性评估”的关键思想,其中当需要调用者时将计算并返回该值,而下一个值仍然是安静的,并且在程序中不执行任何操作
print(sys.getsizeof(range(5)))
print(sys.getsizeof(range(500)))
print(sys.getsizeof(list(range(5))))
print(sys.getsizeof(list(range(500))))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
惰性求值是一种计算策略,它延迟计算并仅在需要的时候才进行求值。在惰性求值中,表达式的计算被推迟到被求值的时候,这有助于提高程序的效率和性能。 惰性求值的一个常见应用是惰性列表。在使用惰性列表时,列表的元素不会在创建时全部求值,而是在使用时按需求进行计算。这种方式可以减少不必要的计算量,特别在处理大量数据或者无穷序列时非常有效。通过惰性求值,我们可以只计算需要的部分,节省了时间和空间。 另一个常见的应用是惰性函数求值。在惰性函数求值中,函数不会立即执行,而是在函数被调用时才会执行。这样做可以延迟计算开销较大的函数,仅在需要时进行计算。这对于一些昂贵的计算操作或者递归函数特别有帮助。 惰性求值的好处之一是可以避免不必要的计算。在某些情况下,程序中的某些部分可能永远不会被执行,使用惰性求值可以避免这些不必要的计算。此外,它还可以提高程序的响应速度,因为不必等待整个计算过程完成才能开始执行下一步操作。 惰性求值虽然带来了一些好处,但也需要注意一些问题。由于不立即进行求值,这可能导致某些错误难以发现。此外,如果不适当地使用惰性求值,可能会导致占用过多的内存空间或者程序逻辑上的问题。 总的来说,惰性求值是一种可以提高程序效率和性能、避免不必要计算的计算策略。在适当的情况下,使用惰性求值可以大大改善程序的执行效率和响应速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值