函式的引數知識點
阿新 • • 發佈:2019-01-09
函式的引數
在python中函式引數的定義方式有以下4中方式
1、位置引數
在我們在傳參的時候,實參傳遞的順序按照形參定義的順序進行傳遞的傳參方式。
def sum_num(num1,num2):
print(num1+num2)
sum_num(1,2)#1對應num,2對應num2.
2、關鍵字引數:
我們在傳參的時候,以形參等於實參的形式忽略形參定義的順序進行傳參的傳參方式。
def sum_num(num1,num2): print(num1) print(num2) print(num1,num2) sum_num(num2=10,num1=20)#不受位置影響。
位置引數關鍵字引數混合使用
def sum_num(num1,num2):
print(num1)
print(num2)
print(num1,num2)
sum_num(10, num1=20)#關鍵字引數在前,位置引數在後,能正常執行,
sum_num(num=10, 20)#否則報錯
3、預設引數:
是在我們定義引數時候,我們給形參一個預設值,在我們呼叫函式的時候,如果不給有預設值的形參傳參,會自動採用預設值。當某個值變化小的時候,我們就可以使用預設引數。
def save_userinfo(name,age,gender='男'): print('姓名:{},年齡:{},性別:{}'.format(name,age,gender)) save_userinfo('張三',20) save_userinfo('花',20,gender='女')
4、可變引數(*args, **kwargs):
如果函式中的引數過多,我們定義起來非常的麻煩,呼叫起來也非常的麻煩,因此python給我們提供了可變引數型別。能處理比當初宣告時更多的引數,會將傳入的引數變成元組(*args)或者字典(**kwargs)
格式
*變數名,可接受多個位置引數。
(1).元組引數 *args
def func(*args):
print(args)#(1,2,3,4,5,6)
print(args[0],args[1])#獲取元組中的元素
func(1,2,3,4,5,6)
通過給形參前面新增*使引數變成一個元組,所有傳遞的引數變成元組的元素
args引數名稱可以任意命名,但是一般我們叫他 args。
(2)具有打散序列的功能
tup=(1,2,3,4)
print(*tup)#1 2 3 4
lst=['a','b','c']
print(*lst)#a b c
s1='hello'
print(*s1)#h e l l o
將元組中的123分別給abc引數賦值
def func(a,b,c):
print(a,b,c)
tup=(1,2,3)
func(*tup)
(3)字典引數 **kwargs
接受多個關鍵字引數,變數名稱可以任意,但是一般使用keargs,所有傳遞的引數變成字典的鍵值對,這裡傳參要求鍵等於值的形式。
**kwargs結果型別是字典,傳遞值是以key=value方式傳入
def func(**kwarge):
print(kwarge)
print(kwarge['name'],kwarge['age'],kwarge['gender'])
func(name='張三',age=10,gender='男')
(4) 具有打散字典的功能**
def func(name,age):
print(name,age)
dic={'name': '張三', 'age': 10}
func(**dic)#等價於下邊根據關鍵字取引數
func(name='張三',age=10)
(5)建立函式宣告引數時的順序:
位置引數、*args、預設引數、**kwargs
def func(a,*args,b=10,**kwargs):
print(a)
print(args)
print(b)
print(kwargs)
func('zs','ls',b='23',d=22,c=29)