函式的引數好幾種型別:位置引數、預設引數、可變引數、關鍵字引數、命名關鍵字引數。這些引數可以混合使用,但是順序不能變。
位置引數
舉個例子:
def my_power1(x,n):
return x**n
其中,x和n就是位置引數,在函式呼叫時必須傳入這兩個值。
預設引數(預設引數必須指向不變物件!list是可變的,因此預設引數不可以指向list。)
舉個例子:
def my_power2(x,n=2):
return x**n
其中,x是位置引數,n是預設引數,當函式被呼叫時,可以傳入n的值,也可以不傳入n的值。不傳入時,預設為2。
可變引數
可變引數就是說,傳入的引數的個數是可變的,可以是0個,1個,2個....
舉個例子:
def my_calc(*numbers): #求取傳入的所有引數的平方和
sum = 0
for n in numbers:
sum = sum + n * n
return sum
此時,引數numbers前邊加上了*,表示這是乙個可變引數,這些可變引數在函式呼叫時自動組裝成乙個tuple。
關鍵字引數
關鍵字引數允許傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝成乙個dict。
舉個例子:
def person(name,age,**kw):
print('name:',name,'age:',age,'other;',kw)
在函式呼叫時,可以只傳入name和age,也可以在傳入name和age的同時傳入其他引數。
呼叫及結果:
>>>person('bob',10)
name:bob age:10 other:{}
>>>person('bob',10,city='beijing')
name:bob age:10 other:
>>>person('bob',10,city='beijing',***='man')
name:bob age:10 other:
命名關鍵字引數
對於關鍵字引數,函式的呼叫者可以傳入不受限制的關鍵字引數,但是命名關鍵字引數可以限制關鍵字引數的名字,只接收特定的關鍵字引數。
舉個例子:
def person(naem,age,*,job,city):
print(name,age,job,city)
使用*作為特殊分隔符,*後邊的引數被視為命名關鍵字引數。在呼叫時,命名關鍵字引數要將引數名一起寫出來。
呼叫及結果:
>>>person('jack',24,job='engineer',city='beijing')
jack 24 engineer beijing
ps:不是很懂為什麼要有命名關鍵字引數,呼叫時也不能省 python引數函式 Python函式引數總結
coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...
python 引數 Python函式 引數
python中將函式作為引數,區分將引數直接寫成函式名和函式名 的區別。def fun1 fun print print print fun 執行fun1 fun4 時,fun為函式fun3的返回值x print type fun type fun type fun fun 執行fun1 fun4 ...
python 函式的引數
位置引數 def power x,n s 1 while n 0 n n 1 s s xreturn s 以上的函式旨在於實現計算x的n次方 預設引數 def power x,n 2 s 1 while n 0 n n 1 s s x return s以上函式中,預設n 2,這樣情況下,不需要每次輸...