python 裝飾器,生成器,迭代器

2021-08-21 06:37:38 字數 699 閱讀 4340

示例1:無參無返回值

def shuai(func):

示例2:帶參函式的裝飾器

# 帶參函式的裝飾器

示例3:帶參有返回值的裝飾器

def zhuangshiqi(func):

# 資料量非常小,記憶體占用不大

l = [i for i in range(10)] ​ # 資料量特別大時,會造成記憶體占用突然增大 # l2 = [i for i in range(10000)] # 生成器 l2 = (i for i in range(2)) ​ print(type(l)) print(type(l2)) ​ # 可以轉換為列表 # print(list(l2)) ​ # 使用next獲取生成器中值,一次乙個,遍歷結束會報錯stopiteration # print(next(l2)) # print(next(l2)) # print(next(l2)) ​ # 可以使用for-in遍歷 for i in l2:    print(i)

def test(n):

from collections import iterator

​ l = (i for i in range(10)) print(isinstance(l, iterator))

Python生成器 迭代器 裝飾器

python生成器 迭代器 裝飾器 最簡單的生成器 g x x for x in range 10 for i in g print i函式方法實現稍複雜的生成器 def fib max n,a,b 0,1,1 while nyield b a,b b,a b n 1 for n in fib 6 ...

Python裝飾器,迭代器,生成器

1.python裝飾器 由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。所有函式都有乙個 name 屬性,這樣我們就可以那到函式名。現在,假設我們要增強now 函式的功能,比如,在函式呼叫前後自動列印日誌,但又不希望修改now 函式的定義,這種在 執行期間動態增加功...

Python生成器,迭代器,裝飾器

使用了yield函式就被稱之為生成器,生成器是乙個返回迭代器的函式,說白了生成器就是迭代器,只能用於迭代操作 不懂,沒關係,下面就乙個斐波那契數列為例來進行講解 a,b 0,1while a 100 a,b b,a b print a import sys deffibonacci n 生成迭代器函...