在解釋這兩個概念之前,我們先看了例子,
def example(*args, **kwargs):
print('-------------------')
print('args = ', args)
print('kwargs = ', kwargs)
print('-------------------')
if __name__ == '__main__':
example(1, 2, 3)
example(a=1, b=2, c=3)
example(1, 2, 3, a=4, b=5, c=6)
example('a', true, 1, a=1, b='b', c=false)
輸出結果:
-------------------
args = (1, 2, 3)
kwargs = {}
-------------------
-------------------
args = ()
kwargs =
-------------------
-------------------
args = (1, 2, 3)
kwargs =
-------------------
-------------------
args = ('a', true, 1)
kwargs =
-------------------
從上面的**我們可以看到,*args和**kwargs是python的兩個可變引數,前者的型別是tuple,表示多個無名的引數;後者是乙個dict,表示關鍵字引數。
另外,需要注意的是,當同時使用*args和**kwargs時,*args引數要在**kwargs之前,否則會出現報錯。
example(1, 2, a=3, 4)
出現下面報錯:
syntaxerror: positional argument follows keyword argument
什麼是 args和 kwargs
def example args,kwargs print print args args print kwargs kwargs print if name main example 1,2,3 example a 1,b 2,c 3 example 1,2,3,a 4,b 5,c 6 examp...
Python 什麼是 args和 kwargs
今天看原始碼的時候發現乙個是 args和 kwargs,一看就能知道args是神馬,就是所有引數的陣列,kwargs就不知道了,google一下,乙個人的blog寫的比較簡單明瞭,秒懂了 kwargs就是當你傳入key value是儲存的字典。補充一下 kwargs不影響引數位置 例子 def te...
Python 什麼是 args和 kwargs
python 什麼是 args和 kwargs 今天看原始碼的時候發現乙個是 args和 kwargs,一看就能知道args是神馬,就是所有引數的陣列,kwargs就不知道了,google一下,乙個人的blog寫的比較簡單明瞭,秒懂了 kwargs就是當你傳入key value是儲存的字典。補充一下...