Python args與kwargs拆包詳解

2021-09-27 02:36:16 字數 1505 閱讀 8250

先說一下 * ,或許在剛入門python時對拆包難以理解

c語言中 * 是對指標的操作,在python中就乙個作用,就是「拆包」

「拆包」顧名思義就是開啟包,將包(在此指元組tuple、字典dictionary)裡面的資料拆分成乙個個單獨的資料。
例如:

numtuple = (1, 2, 3)
拆包後就是:

1 2 3
先看如下**:

# python拆包

deffunction1

(value,

*args)

:print

(value)

# 1print

(args)

# (1, 2, 3, 4)

print

(*args)

# 1, 2, 3, 4

# 將args與8args作為實參傳送

function2(args)

# ((1, 2, 3, 4),) # (1, 2, 3, 4)

function2(

*args)

# (1, 2, 3, 4) # 1 2 3 4

deffunction2

(*args)

:print

(args)

print

(*args)

function1(1,

1,2,

3,4)

執行如下:

解析:

1. function1(1, 1, 2, 3, 4)時,value接收了1,args接收的(1,2,3,4)

注意,是args接收的,不是*args接收的

2. *就是拆包指令,所以輸出args時是以未拆包,也就是原元組進行print的

3. 在將args作為實參傳輸給function2時,就是將未拆包的元組以乙個元素形式傳給了新元組

4. 而將*args作為實參時,是拆包後,也就是1,2,3,4以四個元素傳給了function2

剛開始或許會有點難以理解,多寫幾次就會了。

如果你對上述已經理解了,那麼接下來的**kwargs就一目了然了

Python args和 kwargs 的區別

args就是所有引數的陣列,kwargs就是當你傳入key value是儲存的字典。補充一下 kwargs不影響引數位置 例子 def test a,args,kwargs print a print b print c print args print kwargs test 1,2,3,d 4 ...

python args 和 kwargs的用法

當函式的引數不確定時,可以使用 args 和 kwargs,args 沒有key值,kwargs有key值。關於args coding utf 8 author ecaoyng def func args farg,args print the first arg is s farg print t...

python args和 kwargs魔法變數

1 函式的三種主要引數型別 標準引數 args kwargs 2 定義 args kwargs,也叫魔法引數。它們發揮作用的重點是前面的星號,這兩個可以打包或者解包相應的引數,至於,args kwargs是代指,也可以是任何其他字元,例如 x,xx。3 使用舉例 魔法引數使用主要是兩方面,一是定義函...