python args 和 kwargs的用法

2021-09-22 11:05:45 字數 2563 閱讀 4711

當函式的引數不確定時,可以使用*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(type(args))

for arg in

args:

print('other arg is %s' % arg)

func_args('hello','dear', 'python')

輸出:the first arg is hello

other arg is dear

other arg is python

當然,也可以將

parameters = ['hello','dear', 'python']

func_args(*parameters)

結果也是一樣的

kwargs的用法

#!-*-coding:utf-8-*-

#__author__ = 'ecaoyng'

deffun_var_kwargs

(farg, **kwargs):

print ("arg:", farg)

for key in kwargs:

print("another keyword arg: %s: %s" % (key, kwargs[key]))

# fun_var_kwargs(farg=1, myarg2="two", myarg3=3)

kargs=

fun_var_kwargs(kargs)

print('='*40)

fun_var_kwargs('first',**kargs)

輸出結果:

arg: 

****************************************

arg: first

another keyword arg: a: 1

another keyword arg: d: 4

another keyword arg: b: 2

another keyword arg: c: 3

現在更進一步討論python的星號(、*)的作用

當函式的引數前面有乙個星號的時候表示這是乙個可變的位置引數,兩個星號*表示是可變的關鍵字引數。

def foo(*args, **kwarg):

for item in args:

print('in args:')

print(item)

for k,v in kwarg.items():

print('in kwarg')

print (k,v)

print(30*'=')

foo(1, 2, 3, a=4, b=5)

# outputs:

# 1 in args.

# 2 in args.

# 3 in args.

# (a,4) in kwarg.

# (b,5) in kwarg.

foo(2, 3, a=4, b=5, c=1)

# outputs:

# 2 in args.

# 3 in args.

# (a,4) in kwarg.

# (b,5) in kwarg.

# (c,1) in kwarg.

#如上,我們可以傳入任意多個引數

v = (1, 2, 4)

v2 = [11, 15, 23]

d =

foo(v, d)

# in args:

# (1, 2, 4)

# in args:

# foo(*v, **d)

# in args:

# 1# in args:

# 2# in args:

# 4# in kwarg

# b 12

# in kwarg

# a 1

foo(v2, d)

# in args:

# [11, 15, 23]

# in args:

# foo(*v2, **d)

# in args:

# 11

# in args:

# 15

# in args:

# 23

# in kwarg

# a 1

# in kwarg

# b 12

注意

上面的示例中如果v、v2、d沒有加星號那麼就當成了乙個引數傳遞給了函式,如果加了星號那麼就會解包後傳遞給函式。

可變位置引數*args是乙個元組,是不可修改的。

對於字典型別的如果只使用乙個型號*那麼傳入的只是字典的鍵。

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魔法變數

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

python args和 kwargs的用法

1 args用來將引數打包成tuple給函式體呼叫 args用來將引數打包成tuple給函式體呼叫 def func args print args,type args func args用來將引數打包成tuple給函式體呼叫 def func02 x,y,args print x,y,args,t...