python之路---11 第一類對象 函數名 閉包 叠代器
二十九.
1.函數名的運用
①函數名是?個變量, 但它是?個特殊的變量, 與括號配合可以執?函數的變量
②函數名是一個內存地址
③ 函數名可以賦值給其他變量
④函數名可以當做容器類的元素
⑤函數名可以當做函數的參數
⑥函數名可以作為函數的返回值
2.閉包
閉包就是內層函數, 對外層函數(非全局)的變量的引?.
標準的閉包
①優點:1).可以保護變量不受侵害
2),保持一個變量常駐內存
② .__closure__ 查看是否是閉包
返回 None 就不是閉包
返回一個地址 是閉包
③ 在外部調用內部
1).單層
2).多層
3.叠代器
1.一個數據類型中包含了__iter__函數表示這個數據是可叠代的
dir(數據): 返回這個數據可以執行的所有操作
2.判斷叠代器和可叠代對象的方案(野路子)
__iter__ Iterable 可叠代的(str, list, tuple, dict, set)
__iter__ __next__ Iterator 叠代器
3.判斷叠代器和可叠代對象的方案(官方)
借助兩個模塊 from collections import Iterable, Iterator
isinstance(對象, Iterable) 是否是可叠代的
isinstance(對象, Iterator) 是否是叠代器
4.模擬for 循環
5.特征:
1. 省內存(生成器)
2. 惰性機制
3. 只能向前. 不能後退
作用:統一了各種數據類型的遍歷
python之路---11 第一類對象 函數名 閉包 叠代器