python 函數
構成:由若干語句組成的語句塊、函數名稱、參數列表構成,他是組織代碼的最小單位。
作用:1、結構化編程對代碼的最基本的封裝,一般按照功能組織一段代碼
2、復用
3、代碼更加簡潔美觀,可讀易懂
def語句定義函數:
def 函數名(參數列表)
函數體(代碼塊)
return 返回值
可以沒有return語句,隱式會返回None值
函數調用:函數名(),括號內寫參數
參數:
定義中的參數為形參,只是一種符號的表達。調用中的參數為實參,是真正的值。定義要在調用前。
函數參數:分為 位置參數、關鍵字參數、可變參數(可變位置參數 *,可變關鍵字參數 **)、????? keyword-only參數(可變位置參數之后)。
位置可變參數收集實參形成一個tuple,關鍵字可變參數收集實參形成一個dict
參數默認值:可以在未傳入足夠的實參的時候,對沒有給定的參數賦值為默認值
位置參數要在關鍵字參數之前傳入,可變參數要放在最后,keyword-only在位置可變參數后。
參數結構:
給函數提供實參時,可以在集合類型前使用*或者**,把集合類型的結構解開,提取出所有元素作為函數的實參。提取出的元素數目和類型要和參數的要求匹配。
函數的返回值:
用return語句返回 返回值,如果沒有return,默認返回None
return語句并不一定是函數語句塊的最后一條語句
一個函數可以存在多個return語句,但只會執行一條
如果函數執行了return語句,函數就會返回,之后的語句就不會被執行
函數不能同時返回多個值
函數嵌套:
在一個函數中定義了另外一個函數。
作用域:
一個表示符的可見范圍,就是表示符的作用域,一般常說的是變量的作用域。
全局作用域:在整個程序運行環境中可見
局部作用域:在函數、類等內部可見。局部變量使用范圍不能超過其所在的局部作用域。
外層變量作用域在內層作用域可見,相反不可見。
全局變量global:使用global關鍵字的變量,將內部作用域的變量聲明為全局作用域中定義的變量。
閉包:出現在嵌套函數中,指的是內層函數引用到了外層函數的自由變量(自由變量:本層沒有定義定??? 義在外層)但外層不能是全局,形成閉包。使用nonlocal關鍵字。
默認值的作用域:用(標識符.__defauits__)查看默認值。默認值本身不會變,但是默認值引用一個可變 類型(如list),引用類型的元素可以變動。
可以使用None作為默認參數,通過值的判斷就可以靈活的選擇創建或者修改傳入對象 。
例子:def foo(x=None):
if x is None:
x=[]
函數的銷毀:
全局函數銷毀:重新定義同名函數、del 語句刪除、程序結束時
局部函數銷毀:重新在上一級作用域定義同名函數、del語句刪除、上級作用域銷毀時
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87808