1. 程式人生 > >閉包、叠代器

閉包、叠代器

進行 list -s 內置 while 如何判斷 sin 分享圖片 重復

1.函數名 函數名就是變量名(可以進行賦值),函數名存儲的是函數的地址 需要括號才可以執行 技術分享圖片 2.閉包:內層函數對外層函數(非全局)變量的引用 作用:1.保護一個變量,讓他不受改變 2.讓一個變量常駐內存 使?__closure__來檢測函數是否是閉包. 使?函數名.__closure__返回cell就是 閉包. 返回None就不是閉包 技術分享圖片 3.Iterable (可叠代的) Iterator(叠代器) d7ir() 查看變量能夠執行的方法(內置函數) dir(str)) # 查看str能夠執行的操作. 內部的方法 list = [1,2,3,4,5,6] it = list._iter_() while 1: try: aa = it._next_() print(aa) except StopIteration: break 如何判斷一個數據是否是可叠代對象 1. dir() -> __iter__ 可叠代的 dir() -> __next__ 叠代器 lst = ["秦始皇", "漢武帝", "孝文帝", "隋煬帝", "李世民"] print("__iter__" in dir(lst)) # True 可叠代的 print("__next__" in dir(lst)) # False 不是叠代器 from collections import Iterable(可叠代的), Iterator(叠代器) print(isinstance(lst, Iterable)) # True print(isinstance(lst, Iterator)) # False print(isinstance({1,2,3}, Iterable)) # True, 可以使用for循環 叠代器特點:1.節省內存 2.惰性機制(不給_next_不給值) 3.只能往前,不可以重復

閉包、叠代器