1. 程式人生 > >python之路---11 第一類對象 函數名 閉包 叠代器

python之路---11 第一類對象 函數名 閉包 叠代器

none ble sin port 類對象 一個數 就是 http 惰性

二十九.

  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 第一類對象 函數名 閉包 叠代器