天天看點

參數匿名函數字典排序、生成式和生成器、裝飾器的作用

*args就是一個元組

**dict就是字典

參數匿名函數字典排序、生成式和生成器、裝飾器的作用
參數匿名函數字典排序、生成式和生成器、裝飾器的作用

[x*x for x in range(0,10)] //清單生成式,這裡是中括号

//結果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

例子:

In [33]: def fun(n): 

...: for i in range(1,n):

...: print(i*2)

結果:fun(1000000)

會一直列印,直到結束為止,這樣占用大量的系統的資源

(x*x for x in range(0,10)) //生成器, 這裡是小括号

//結果 <generator object <genexpr> at 0x7f0b072e6140>

一個直接傳回了表達式的結果清單, 而另一個是一個對象,該對象包含了對表達式結果的計算引用, 通過循環可以直接輸出

參數匿名函數字典排序、生成式和生成器、裝飾器的作用

生成式和生成器的差別:

當表達式的結果數量較少的時候, 使用清單生成式還好, 一旦數量級過大, 那麼清單生成式就會占用很大的記憶體,而生成器并不是立即把結果寫入記憶體, 而是儲存的一種計算方式, 通過不斷的擷取, 可以擷取到相應的位置的值,是以占用的記憶體僅僅是對計算對象的儲存

yield可以輸出多個值 return隻能輸出一個值(當函數碰到return就跳出整個函數,不會執行下面的):

參數匿名函數字典排序、生成式和生成器、裝飾器的作用
參數匿名函數字典排序、生成式和生成器、裝飾器的作用
參數匿名函數字典排序、生成式和生成器、裝飾器的作用

執行結果:

參數匿名函數字典排序、生成式和生成器、裝飾器的作用

裝飾器傳參數:

繼續閱讀