Python 惰性計算

惰性計算(Lazy evaluation),是指僅僅在真正需要執行的時候才計算表達式的值。充分利用其特性可以帶來很多便利。

  1. 避免不必要的計算,帶來性能的提升。
    對於Python中的條件表達式 if x and y,在x爲false的情況下y表達式的值將不再計算。而對於if x or y,當x的值爲true的時候將直接返回,不再計算y的值。因此編程中可以利用該特性,在 and邏輯中,將小概率發生的條件放在前面或者在or邏輯中,將大概率發生的時間放在前面,有助於性能的提升。

  2. 節省空間,使得無線循環的數據結構成爲可能。
    Python中最經典的使用延遲計算的例子就是生成式表達器了,它盡在每次需要計算的時候才通過yield產生所需要的元素。
    例:斐波那契數列在Python中實現起來很容易,使用yied對於while True也不會導致其他語言中所遇到的無線循環問題。

       def fib():
           a,b=0,1
           while True:
               yield a
               a,b = b,a+b
       from itertools import islice
       print list(islice(fib(),5))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章