標籤:rgs 分享 作用 info turn 接收 不能 oca 名稱空間
1、動態參數
當實參數量與形參數量相等時,參數傳遞正常。
def func1(a, b, c): passfunc1(1, 2, 3)
當實參數量與形參數量不相等時,則會報錯。
def func1(a, b, c): passfunc1(1, 2, 3, 4, 5, 6, 6)
使用者傳入到函數中的實參數量不確定時,或者為了以後擴充,此時要用到動態參數 *args **kwargs(萬能參數)。
順序:
位置參數,*args,預設參數,**kwargs
1、*args
*args是接收的是所有的位置參數。
def func(*args, **kwargs): print(args) print(kwargs)func(1, 2, 3, 4)
注意:print()裡面的args前面不能帶 * 。
2、**kwargs
**kwargs接收的是所有的關鍵字參數。
def func(*args, **kwargs): print(args) print(kwargs)func(x=4, y=5, z=6)
注意:print()裡面的args前面不能帶 * 。
def func(*args, **kwargs): print(args) print(kwargs)func(1, 2, 3, x=4, y=5, z=6)
順序
位置參數,預設參數
def func2(a, b, sex = ‘男‘): print(a) print(b) print(sex)func2(1, 2, ‘女‘)
位置參數、*args、預設參數
def func2(a, b,*args, sex = ‘男‘): print(a) print(b) print(args) print(sex)func2(1, 2, 5,6,7,8,9, sex=‘女‘)
位置參數、*args、預設參數、**kwargs
def func2(a, b, *args, sex=‘男‘,age=20, **kwargs): print(a) print(b) print(args) print(sex) print(age) print(kwargs)func2(1, 2, 5, 6, 7, 8, 9, x=6, y=5, name=‘alex‘)
加法器:
def sum1(*args): ret = 0 for i in args: ret += i return retprint(sum1(1, 2, 3,))
def func3(*args, **kwargs): print(args) print(kwargs)l1 = [1, 2, 3]l2 = [11, 21, 32]func3(l1, l2)
def func3(*args, **kwargs): print(args) print(kwargs)l1 = [1, 2, 3]tu1 = (1, 2, 3)tu2 = (11, 22, 33)func3(*l1, *tu1, *tu2)
def func3(*args,**kwargs): print(args)func3(1, 2, 3, 1, 2, 3, 11, 22, 33)
在函數的定義中, * 是彙總的意思。
def func3(*args,**kwargs): print(args) print(kwargs)l1 = [1, 2, 3]dic ={‘name‘: ‘alex‘}dic1 ={‘age‘: 1000}func3(*l1, **dic, **dic1)
* 的魔性用法:
def func3(*args,**kwargs): # 函數的定義 *用意是彙總。 print(args) print(kwargs)l1 = [1, 2, 3]tu1 = (1, 2, 3)tu2 = (11, 22, 33)func3(*l1, *tu1, *tu2)
def func3(*args,**kwargs): print(args) print(kwargs)func3(1,2,3,1,2,3,11,22,33)
def func3(*args,**kwargs): print(args) print(kwargs)l1 = [1, 2, 3]dic ={‘name‘: ‘alex‘}dic1 ={‘age‘: 1000}func3(*l1, **dic, **dic1)
2、名稱空間、範圍、範圍鏈、載入順序 1、空間名稱
2、範圍
3、範圍鏈
4、載入順序
3、函數的嵌套
4、global、nonlocal 1、global
2、nonlocal
Python全棧__動態參數、名稱空間、範圍、範圍鏈、載入順序、函數的嵌套、global、nonlocal