python核心編程筆記chapter 11

函數是對程序邏輯進行結構化和過程化的一種編程方法。能將整塊代碼巧妙地隔離成易於管理的小塊。python

函數返回多個對象時實際是返回一個包含多個對象的元組。express

建立函數: def語句編程

python不容許在函數聲明以前對其進行引用或調用。閉包

help()和 __doc__app

裝飾器:裝飾函數的包裝,返回一個修改後的函數對象。編程語言

傳遞函數:當對一個變量賦值時,其實是將相同對象的引用賦值給這個變量。函數式編程

formal arguments:
函數

  位置參數:準確順序,一致數目。ui

  默認參數:沒有爲參數提供值就使用預先定義的默認值。全部位置參數必須出如今默認參數以前。code

  可變長度的參數:元組、字典

   非關鍵字可變長參數(元組):必須在位置和默認參數以後。*

def function_name ([formal_args] *varge_tuple):
    fonction_body_suite

   關鍵字變量參數(字典);在有不定數目的或者額外集合的關鍵字的狀況中,參數被放入一個字典中,字典中鍵爲參數名,值爲相應的參數值。

def function_name ([formal_args] [*vergst,] **vargsd):
    fonction_body_suite

函數式編程:python不是函數式編程語言,但支持函數式編程語言構建。

   匿名函數與lambda:lambda arg1,arg2: expression

   內建函數apply(),filter(),map(),reduce()

filter(func, seq):返回一個使func返回值爲true的元素的序列,

map(func, seq): 將函數調用「映射」到每一個序列的元素上,並返回一個含有全部值的列表。

reduce(bin_func, seq,init = None):摺疊

偏函數應用:將任意數量的參數的函數轉化爲另外一個帶剩餘參數的函數對象。

變量做用域:局部域和全局域

在python2.1以前,雖然存在多個函數的嵌套,但你不能訪問超過兩個做用域。

閉包:在一個內部函數裏,對外在做用域(但不是全局做用域)的變量進行引用,那麼就定義爲閉包。

做用域和lambda:在lambda語句中的表達式有和函數相同的做用域。

生成器:帶yield語句的函數,能暫停執行並返回一箇中間的結果。

    協同程序:能夠運行的獨立函數調用,能夠暫停或掛起,並從程序離開的地方繼續或從新開始。

生成器的增強特性:除了next()得到下個生成的值,send()把值發送給生成器,close()要求生成器退出。

相關文章
相關標籤/搜索