第一類對象 --> 函數名 --> 變量名閉包
函數對象能夠像變量同樣進行賦值函數
還能夠做爲列表的元素進行使用對象
能夠做爲返回值返回內存
能夠做爲參數進行傳遞it
閉包-->函數的嵌套io
內層函數對外層函數中的變量的使用for循環
好處:import
1.保護變量不被侵害變量
2. 讓一個變量常駐內存循環
如何經過代碼查看一個閉包
__closure__:有東西就是閉包. 沒東西就不是閉包
迭代器 --> 固定的思路. for 循環
一個數據類型中包含了__iter__函數表示這個數據是可迭代的
dir(數據): 返回這個數據能夠執行的全部操做
判斷迭代器和可迭代對象的方案(野路子)
__iter__ 可迭代的
__iter__ __next__ 迭代器
判斷迭代器和可迭代對象的方案(官方)
from collections import Iterable,Iterator
isinstance(對象, Iterable) 是不是可迭代的
isinstance(對象, Iterator) 是不是迭代器
模擬for循環
lst= []
# 拿迭代器
it = lst.__iter__()
while 1:
try:
it.__next__()
except StopIteration:
break
特徵:
1. 省內存(生成器)
2. 惰性機制
3. 只能向前. 不能後退
做用:統一了各類數據類型的遍歷