python函式引數包括五種型別:位置引數、預設引數、可變引數、關鍵字引數以及命名關鍵字引數。
位置引數例如 def ex(y): y就是位置引數 例子:
def ex(y):
print(y)
ex(2)
預設引數
可以簡化函式的呼叫,設定預設引數時,要注意:
一 必選引數在前,預設引數在後
二當函式有多個引數時,把變化大的引數放在前面,變化小的引數放後面
舉個例子:
def information(name,gender,age=18,city='beijing'):
print(name,gender,age,city)
information('xiaoming','9',city='hebei')
結果如下:
information()中age和city是預設引數,當全部輸入時,預設引數可以不用寫引數名輸入,如果不是按照預設順序引數輸入,就要輸入相應的引數名,當不對預設引數做處理時,輸出就會輸出預設引數,如果輸入給定值,就會輸出給定值。
定義預設引數時,預設引數必須指向不變物件
可變引數:可變引數就是指傳入的引數個數是可變的,即可以是1個,2個到任意個,也可以是0個。
可變引數主要運用於在不知道引數個數的情況下使用。
例如計算一組數字的平方和a^2+b^2+c^2+.....
函式可以這樣定義:
def sq(*number):
sum=0
for x in number:
sum=sum+x*x
return sum
a=sq(1,2,3)
print(a)
可變引數是用*args定義的,如sq(*number)
可變引數傳值還有乙個方法,即
b=[1,2,3]
sq(*b)
*b表示把b這個列表裡面的所有引數作為可變引數傳進去。
可變引數允許傳入0個或者任意個引數,這些可變引數在函式呼叫時自動組裝為乙個元組。
關鍵字引數:關鍵字引數允許傳入0個或者任意個包含引數名的引數,這些關鍵字在函式內部自動組裝成為乙個字典。示例如下
def student(name,grade,**kw):
print(name,grade,kw)
這表示student這個函式引數接收關鍵字引數kw,關鍵字引數表示時使用**kw來表示
def student(name,grade,**kw):
print(name,grade,kw)
>>> student('xiaoming','5',age="9",address="北京")
xiaoming 5
age="9",address="北京"就是關鍵字引數,它是用字典顯示出來的,使用關鍵字引數可以使函式有良好的擴充套件功能,
命名關鍵字引數:命名關鍵字可以限制關鍵字引數的名字,這樣可以保證一定的安全性。
命名關鍵字引數有兩種方法:一是在引數前面加乙個*,用逗號隔開:如下
def per(name,age,*,city,job):
print(name,age,city,job)
*後面的city和job即是命名關鍵字引數,呼叫方式如下:
per("xiaohong",12,city="北京",job="學生")
xiaohong 12 北京 學生
第二種方法是如果函式引數中已經有了可變引數,那麼可變引數後面的引數即為命名關鍵字引數:
def per(name,age,*args,city,job):
print(name,age,args,city,job)
即*args後面的city,job為關鍵字引數
要注意的是:命名關鍵字一定傳入引數名,否則會出錯,命名關鍵字也可以有預設值。
引數組合:在python中可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數組合使用,引數定義順序為:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。示例如下:
def ex(a,b,c=1,*args,**kw):
print(a,b,c,args,kw)
a和b為必選引數,c為預設引數,args為可變引數,**kw為關鍵字引數
還有一種為
def ex(a,b,c=1,*args,d,**kw):
print(a,b,c,args,kw)
a和b為必選引數,c為預設引數,args為可變引數,d為命名關鍵字引數,**kw為關鍵字引數。 python3函式的引數
函式的定義能簡化 的邏輯,對於函式的呼叫者來說,只需要知道如何正確的傳遞引數,以及知道函式將返回什麼值就可以了,而函式內部的複雜邏輯被封裝起來,呼叫者不必了解。呼叫函式時,傳入實參的值按照位置順序以此賦給形參。def power x,n s 1 while n n n 1s s x return s...
python3 函式的引數
函式的引數 預設引數 可變引數 關鍵字引數 命名關鍵字引數 版本 v1.0 日期 2019.03.26 python版本 3.7 引數預設值 def f1 a,b 5,c 10 return a b 2 c 3 print f1 1,2,3 print f1 100,200 print f1 100...
Python3 函式引數的傳入
在運維過程中,有些時候需要向main函式中傳遞引數,以方便運維與測試,那麼怎麼向main函式中傳入多個引數呢,下面以python3中的main函式為例,簡單講一下。首先我們需要import sys,sys是python3的乙個標準庫,也就是乙個官方的模組。封裝了一些系統的資訊和介面,然後再說說ar ...