python之引數總結

2021-07-17 02:09:49 字數 2004 閱讀 5298

位置引數

power(x, n)函式有兩個引數:x和n,這兩個引數都是位置引數,呼叫函式時,傳入的兩個值按照位置順序依次賦給引數x和n。
預設引數 =
預設引數必須指向不變物件!

def enroll(name, gender,age=6,city='beijing'):

print('name:', name)

print('gender:', gender)

呼叫:enroll('bob', 'm', 7)、enroll('adam', 'm', city='tianjin')

可變引數:* >=0

可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple---類似list,不可變元組def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

呼叫時傳入乙個list或tuple

呼叫 calc(1,2,3)

關鍵字引數(**kw)----key--value(map)

關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)

呼叫 >>> person('michael', 30)

name: michael age: 30 other: {}

也可以傳入任意個數的關鍵字引數

person('bob', 35, city='beijing')

name: bob age: 35 other:

命名關鍵字引數 *

如果要限制關鍵字引數的名字,就可以用命名關鍵字引數

例如,只接收city和job作為關鍵字引數。

def person(name, age, *, city, job):

print(name, age, city, job)

如果函式定義中已經有了乙個可變引數,後面跟著的命名關鍵字引數就不再需要乙個特殊分隔符*了

def person(name, age, *args, city, job):

print(name, age, args, city, job)

命名關鍵字引數必須傳入引數名,這和位置引數不同。

如果命名關鍵字引數city具有預設值,呼叫時,可不傳入city引數。

引數組合

在python中定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數,

這5種引數都可以組合使用。但是請注意,引數定義的順序必須是

必選引數-->預設引數-->可變引數-->命名關鍵字引數-->關鍵字引數。

備註:

>>> args = (1, 2, 3, 4)

>>> kw =

>>> f1(*args, **kw)

#這句其實就是f1(args[1],args[2],args[3],args[4],d=99,x='#')的縮寫

a = 1 b = 2 c = 3 args = (4,) kw =

>>> args = (1, 2, 3)

>>> kw =

>>> f2(*args, **kw)

#這句其實就是f2(args[1],args[2],args[3],d=88,x='#')的縮寫

python函式之 預設值引數總結

1.預設值引數後的所有引數都必須是預設值引數,直到遇到任意引數列表def f1 a 2 b 3,c或 c 預設值引數後的引數必須都是預設值引數,直到遇到 即可變引數 print a,b,c f1 4,6 輸出 3 4 或3 4 2.預設值引數,傳遞新引數會覆蓋該函式本地符號表中的值,不傳遞則使用預設...

Python函式引數總結

作為乙個沒有系統學習過python,卻要與之日日相對看原始碼的人,真尼瑪痛苦啊。經常看到 kws之類的,心中狂虐 這啥?指標的指標?t t 昨天看 python核心程式設計 的時候,剛好看到了函式部分,於是順勢將目前接觸到的集中引數型別都總結一下吧 總的來說,除去普通的normal args,pyt...

python 引數傳遞總結

python中函式的引數通過賦值的方式來傳遞引用物件。下面總結通過總結常見的函式引數定義方式,來理解引數傳遞的流程。這種方式最常見了,列出有限個數的引數,並且彼此之間用逗號隔開。在呼叫函式的時候,按照順序以此對引數進行賦值,特備注意的是,引數的名字不重要,重要的是位置。而且,必須數量一致,一一對應。...