python之函式定義和引數隨筆
阿新 • • 發佈:2019-02-16
python中使用關鍵字def來表示函式的定義。如下所示:
def make_shirt(size, mess):
print("the shirt's size is:" + str(size) + " and message is"+mess)
定義了一個函式名為make_shirt的函式,其中函式的引數可有可無,當沒有引數時其括號和冒號是必不可少的,函式直接定義為:
def make_shirt():
print("this is demo")
一. 函式的引數
在Python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,這5種引數都可以組合使用。但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。
必選引數(位置引數):
def func1(a, b): #定義一個函式:包含兩個引數a,b(a,b為位置引數)
print a, b
func1(1, 2) #呼叫時,這兩個引數必填,如果只傳入一個引數或不傳入引數,報異常
預設引數:
def func1(a, b=4): #定義func1函式,包含位置引數a,預設引數b,預設值為4
print a, b
func1(1) #呼叫函式時,可以不用傳預設引數,值預設為4
func1(1,2) #呼叫函式時,傳預設引數時值為傳入的值為2
可變引數:
def func1(numbers): #定義位置引數函式 for num in numbers: print num func1((1, 2, 3)) #呼叫時需要傳入元組或列表 func1([4, 5, 6]) def func2(* numbers): #定義可變引數函式 for num in numbers: print num func2(1, 2) #呼叫時可以傳入任意個數引數 func2(3, 4, 5) number = ["23", "rose"] func2(* number) #傳入一個列表時可以用 * 變數名 來操作
關鍵字引數:
def func1(**numbers): #定義一個傳入關鍵字引數的函式 print numbers extra = {'city': 'Beijing', 'job': 'Engineer'} #定義一個字典 func1(city=extra['city'], job=extra['job']) #呼叫func1函式,傳入兩個引數 func1() #未傳入引數 func1(**extra) #傳入整個字典 func1(city=extra['city']) #傳入1個引數