第一類對象 函數名 變量名

第一類對象 --> 函數名 --> 變量名閉包

函數對象能夠像變量同樣進行賦值函數

還能夠做爲列表的元素進行使用對象

能夠做爲返回值返回內存

能夠做爲參數進行傳遞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. 只能向前. 不能後退

做用:統一了各類數據類型的遍歷

相關文章
相關標籤/搜索