第一類物件 函式名 變數名
阿新 • • 發佈:2018-12-12
第一類物件 --> 函式名 --> 變數名
函式物件可以像變數一樣進行賦值
還可以作為列表的元素進行使用
可以作為返回值返回
可以作為引數進行傳遞
閉包-->函式的巢狀
內層函式對外層函式中的變數的使用
好處:
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. 只能向前. 不能後退
作用:統一了各種資料型別的遍歷