1.位置引數
最熟悉的一種引數形式,優點:簡單。缺點:傳遞引數不夠靈活
2.預設引數
優點:提高了**的復用性
缺點:容易產生二義性
注意事項:
一是必選引數在前,預設引數在後。
二是如何設定預設引數。
當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
預設引數必須指向不變物件!,即:
def add_end(l=none):
if l is none:
l =
return l
不變物件有int,float,str,tuple,none。當對這些型別的變數新值時,它會指向新的記憶體空間
可變物件有list,dict。對於自身的任意方法,是不需要重新開闢記憶體空間的,而是原地改變
3.可變引數
可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個。
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
僅僅在引數前面加了乙個*
號。在函式內部,引數numbers
接收到的是乙個tuple,因此,函式**完全不變。但是,呼叫該函式時,可以傳入任意個引數,包括0個引數。
還可以傳列表:
nums是乙個list,*nums
表示把nums
這個list的所有元素作為可變引數傳進去。這種寫法相當有用,而且很常見: calc(*nums)。
4.關鍵字引數
關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>> person('adam', 45, gender='m', job='engineer')
name: adam age: 45 other:
引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數 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...
jpython 傳入引數 python函式傳值
python函式傳值到底傳什麼?有很多文章講過這個,但是前兩天被問到居然還是有點不清楚,有點蒙,今天就具體好好看看這個。def test a a 10 print a 這個函式接受乙個輸入,假設輸入20,那麼輸出10,python在傳遞引數的將20的引用傳入,然後函式體內重新賦值,新建了乙個物件10...
Python 函式引數傳參方式
目錄 函式定義 呼叫 函式引數傳參 函式引數可變引數傳參 例子 引數解構 呼叫 預設值引數傳參 關鍵字引數的可變引數 有位置可變引數和關鍵字可變引數位置可變引數在形參前使用乙個星號 關鍵字可變引數在形參前使用兩個星號 位置可變引數和關鍵字可變引數都可以收集若干個實參,位置可變引數收集形成乙個tupl...