python- 函數高級

函數高級

1、默認參數

一、默認參數概念

默認參數指函數/方法在定義時爲形參賦值,對應的形參稱爲默認參數。python

默認參數是一個參數定義期的概念,與調用無關。bash

二、默認參數的做用

若是參數定義默認參數,在調用函數/方法時,未對該參數進行傳值,則使用默認值做爲該參數的值。函數

三、默認參數基本語法
定義格式:
    def 函數名(形參1 = 值1,…):
	    函數體		  
    		……	
調用格式一(同普通參數,無特殊):
    函數名(實參)	使用實參做爲形參的值,不使用默認值
調用格式二:
    函數名()		使用默認值做爲形參的值
複製代碼

代碼演示:spa

def test(a = 2,b = 5):
    print(a)
    print(b)
test()
複製代碼

運行結果:code

2
5
複製代碼
四、注意事項
  • 1.默認參數的定義必須在位置參數的右側對象

  • 2.默認參數在調用傳值時,按照位置參數進行對待,從左至右依次賦值,不能跳過左側的某個參數直接爲後面的參數賦值遞歸

2、關鍵字參數

一、關鍵字參數概念

函數/方法在調用時爲指定名稱的形參進行賦值,對應實參稱關鍵字參數。 關鍵字參數是一個參數調用期的概念,與定義無關。string

二、關鍵字參數的做用

按名稱確認實參爲指定的形參賦值。it

三、關鍵字參數基本語法

定義格式(同普通參數定義,無特殊):io

def 函數名(形參 ,…):
    函數體		  
    		……	
複製代碼

調用格式:

函數名( 形參名 = 實參)
複製代碼

代碼演示:

def test(a = 2, b = 5):
    print(a)
    print(b)
test(b = 100)
複製代碼

運行結果:

2
100
複製代碼
四、注意事項
  • 1.關鍵字參數必須出如今位置參數的後面
  • 2.不容許使用關鍵字參數對同一個形參進行屢次賦值
  • 3.關鍵字參數既能夠爲位置參數賦值,也能夠爲默認參數賦值。一般使用關鍵字參數解決默認參數選擇性賦值問題。

3、可變參數

一、可變參數的概念

函數/方法在定義時,定義一個特殊的形參,用於接收調用時傳入的任意數量的實參,對應的形參稱爲可變參數。

可變參數是一個參數定義期與調用期都有效的概念。

二、可變參數的做用

簡化函數定義過程,定義能夠接收無數個實參的形參

形參接受到的數據,不管數量多少,包裝成一個元組對象

三、可變參數基本語法

定義格式:

def 函數名(*args ,…):
	函數體		  
    		……	
複製代碼

調用格式(同普通參數,無特殊):

函數名( 實參1,…… )
複製代碼

代碼演示:

def test(*args):
    print(args)
test(1,2,3,4,5,6,7,6)
複製代碼

運行結果:

(1, 2, 3, 4, 5, 6, 7, 6)
複製代碼
四、注意事項
  • 一、可變參數在一個函數/方法定義中只能出現一個
  • 二、可變參數只能出如今位置參數的後面,位置參數在左側,可變參數在右側
  • 三、關鍵字參數只能出如今位置參數的後面,賦值時必須使用關鍵字參數傳值,不然值會被可變參數接收
  • 四、定義函數的參數時,先定義位置參數,再定義可變參數,最後定義默認參數

代碼演示:

def test(a, b, *args, c = 1):
    pass
複製代碼

4、字典參數

一、字典參數的概念

函數/方法在定義時,定義一個特殊的參數,用於接受未定義直接使用的關鍵字參數,對應的形參稱爲字典參數。

二、字典參數的做用

簡化函數定義過程,接收未定義直接使用的關鍵字參數。 在多層級調用間進行關鍵字參數的逐級傳遞。

未定義的關鍵字參數,不管數量多少,接收後包裝成一個字典對象。

三、字典參數基本語法

定義格式:

def 函數名(**kwargs,···):
    函數體
    ······
複製代碼

調用格式:

函數名(未定義的變量名1 = 實參1,未定義的變量名2 = 實參2,…… )
複製代碼

代碼演示:

def test(**kwargs):
    print(kwargs)
test(a = 1,b = 2,c = 6)
複製代碼

運行結果:

{'a': 1, 'b': 2, 'c': 6}
複製代碼
四、注意事項
  • 1.字典參數在一個函數/方法定義中只能出現一個
  • 2.定義函數的參數時,先定義位置參數,再定義可變參數,而後定義默認參數,最後定義字典參數

代碼演示:

def test(a, b, *args, c = 1,**kwargs):
    pass
複製代碼
五、其餘

全部的容器都支持解包操做,格式:*容器變量名

5、遞歸函數

一、遞歸函數概念

函數/方法在執行過程當中出現了對自身函數/方法的調用,稱該過程爲遞歸調用,稱這樣的函數爲遞歸函數。

二、遞歸函數基本語法

同普通函數

三、遞歸函數定義要求

一、函數體中具備對自身函數的調用 二、函數體中具備明確的函數執行結束斷定條件

四、遞歸函數調用要求

Python語言中函數調用最大層級爲1000層,超過該層級,程序將報錯(不一樣語言設置不一樣)

6、匿名函數

一、匿名函數概念

匿名函數即沒有名稱的函數,在python語言中,匿名函數是使用lambda關鍵字定義的一個特殊表達式,也稱爲lambda表達式。

二、匿名函數基本語法
格式一:
定義:	函數名 = lambda 形參 : 返回值
調用:結果 = 函數名(實參)

格式二:
定義並調用:	結果 = (lambda 形參 : 返回值)(實參)
複製代碼
三、匿名函數特殊語法
無參格式:	結果 = (lambda :返回值)()

多返回值格式:  無,可以使用數據存儲模型返回多個數據
無返回值格式:無,必須有具體值或結果爲None
複製代碼
相關文章
相關標籤/搜索