Python的args和kwargs理解

2021-09-26 08:19:02 字數 1596 閱讀 7908

眾所周知,python的args是用來接收不定長的引數,而kwargs是用來接收不定長的關鍵字引數。

下面通過例項來看看如何真正的理解這兩個的用法。

def test2(a, b, *args, **kwargs):

print("------test2---------")

print(a)

print(b)

print(args)

print(kwargs)

def test1(a, b, *args, **kwargs):

print("-------test1---------")

print(a)

print(b)

print(args)

print(kwargs)

print("the output of a, b, args, kwargs")

test2(a, b, args, kwargs)

print("the output of a, b, *args, kwargs")

test2(a, b, *args, kwargs)

print("the output of a, b, *args, **kwargs")

test2(a, b, *args, **kwargs)

test1(11,22,33,44,55,66, name="zhangsan", age=18)

the output of the test code like following:

-------test1---------

1122

(33, 44, 55, 66)

the output of a, b, args, kwargs

------test2---------

1122

((33, 44, 55, 66), )

{}

從這個結果來看,(33, 44, 55, 66), 被作為乙個整體傳給了test2函式的args物件;然後kwargs沒有實參。

the output of a, b, *args, kwargs

------test2---------

1122

(33, 44, 55, 66, )

{}

從這個結果來看,(33, 44, 55, 66, )被作為乙個整體傳給了test2函式的args物件;然後kwargs沒有實參。

the output of a, b, *args, **kwargs

------test2---------

1122

(33, 44, 55, 66)

從這個結果來看,(33, 44, 55, 66)被作為乙個整體傳給了test2函式的args物件; 傳給了kwargs引數,這個才是我們期待的結果。

總結起來,可以這麼理解,*args可以理解為對實參的乙個拆包,**args也是對實參的拆包。不帶星花就不拆包,會被當做乙個整體

python的 args和 kwargs用法

python的 args和 kwargs如何用,看了下面的例子你就清楚了。先來看乙個例子 複製 如下 def foo args,kwargs print args args print kwargs kwargs print if name main foo 1,2,3,4 foo a 1,b 2,...

Python中的 args和 kwargs的用法

先來看個例子 def foo args,kwargs print args args print kwargs kwargs print if name main foo 1,2,3,4 foo a 1,b 2,c 3 foo 1,2,3,4,a 1,b 2,c 3 foo a 1,none,a 1...

Python中 args 和 kwargs的用法

好久沒有學習python了,應為工作的需要,再次拾起python,喚起記憶。當函式的引數不確定時,可以使用 args 和 kwargs,args 沒有key值,kwargs有key值。還是直接來 吧,廢話少說 python def fun var args farg,args print arg f...