【Python8】匿名函式lambda、函式常用引數型別(必選引數、關鍵字引數、預設值引數、不定長引數)
阿新 • • 發佈:2021-02-07
文章目錄
0 可變與不可變
1. 引數
1.1 必選引數
- 傳入引數的值是按照順序依次賦值給形參
def print_str(str):
print(str)
return
print_str('hello,sdsnzy!')
1.2 關鍵字引數
- 為了避免位置引數嚴格的位置要求,呼叫引數時可以指定對應形式引數的名字,這是關鍵字引數,它甚至可以採用與函式定義時不同的順序.
def f(x,y):
print (x*y)
return
f(y=2,x=3)
#輸出6
1.3 預設值引數
- 當呼叫方沒有提供對應形式引數的值時,你可以指定預設形式引數值。
- 如果提供實參,在呼叫時會代替預設值
def f(x,y=5):
print(x*y)
return
f(3)
#15
def f(x,y=5):
print(x*y)
return
f(3,9)
#27
1.4 不定長引數
- 函式引數數目不確定
1)*
:星號將一組可變數量的位置引數集合成引數值的元組
def countnum(a,*b):
print(b)
print(type(b))
countnum( 1,2,3)
2)**
:以字典形式存放
def countnum(a,**b):
print(b)
print(type(b))
countnum(1,x1=2,x2=3,x3=4)
2. 匿名函式
函式定義的另一種方法是用 lambda 表示式,它定義了一個匿名函式。lambda的一般形式是關鍵字lambda後面跟一個或多個引數,緊跟一個冒號:
,後面是一個表示式。作為表示式,lambda返回一個值。lambda 用來編寫簡單的函式,而def用來處理更強大任務的函式。
示例1:
#把lambda定義的匿名函式賦給函式result
result=lambda x, y,z:x*y*z
print(result(1,2,3))
#6
示例2:
result=lambda x,y,z=2:x+y+z
print(result(2,2,3)) # 7
print(result(2,2)) # 6