国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-06 07:05:17
字體:
來源:轉載
供稿:網友

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

1.生成器(Generator)

1.列表生成式實現

最簡單的生成器:

g = (x*x for x in range(10))for i in g: PRint i

2.函數實現

函數方法實現稍復雜的生成器:

def fib(max): n,a,b=0,1,1 while n<max: yield b a,b=b,a+b n +=1for n in fib(6): print n

在循環過程中不斷調用yield,就會不斷中斷,通常基本不用next()來調用,而是直接使用for循環。

2.迭代器

迭代器是一個next()方法的對象,而不是通過索引來計數。 創建迭代器:對一個對象調用iter()函數就可以得到它的迭代器,它的語法如下:

iter(obj) iter(func,sentinel)

1.序列

mytuple=(1,2,3)i=iter(mytuple)print i.next()print i.next()print i.next()

2.字典

字典的迭代器會遍歷它的鍵(key),一種比較簡潔的方法如下:

legends = {'A':1,'B':2,'C':3}for i in legends: print i print legends[i]

3.文件

文件對象生成的迭代器會自動調用readline()方法,一種簡潔的實現方法如下:

myFile = open('a.txt')for eachLine in myFile: print eachLine

3.裝飾器(Decorator)

基本概念:在函數調用前后自動打印日志,又不改變原函數,在代碼運行期間動態增加功能的方式稱之為“裝飾器”。

裝飾器的語法已@開頭,接下來是裝飾器函數的名字和可選的參數,緊跟著裝飾器聲明的是被修飾的函數和裝飾函數的可選參數。

decorator(dec_opt_args) def func2Bdecorated(func_opt_args):

比較常用的地方: 1、引入日志 2、增加計時邏輯來檢測性能 3、給函數加入事務的能力

def log(func): def wrapper(*args, **kw): print 'call %s():' % func.__name__ return func(*args, **kw) return wrapper@logdef now(): print '2013-12-25'
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤冈县| 陈巴尔虎旗| 栖霞市| 福清市| 揭西县| 延寿县| 金寨县| 无为县| 天气| 鄢陵县| 仙居县| 桂平市| 辽源市| 柳江县| 平凉市| 黔东| 滦平县| 漾濞| 安仁县| 桐柏县| 吉首市| 沧州市| 长寿区| 巫山县| 呼伦贝尔市| 永年县| 定安县| 毕节市| 雅安市| 台中县| 惠东县| 钦州市| 汝州市| 望城县| 洪雅县| 海口市| 浦江县| 家居| 家居| 东港市| 瑞金市|