python从入门到放弃

参数arg、*args、**kwargs三个的区别

2020-08-05  本文已影响0人  楠木cral

arg:单个的参数
*args: 将参数(一般为未命名参数或者叫位置参数)打包成元祖类型的给函数使用
*kwargs: 将参数(一般是命名参数或者叫关键字参数)打包成字典形式
args和
kwargs都是不定长参数,可以传0或者更多的参数
举例:
*args:

def function(*args):
    print(args, type(args))
function(1)   # 打印出  (1,)  <class 'tuple'>

def function2(x, y, *args):
    print(x, y, args)
function2(1, 2, 3, 4, 5)     # 打印出   1   2   (3,4,5)

**kwargs:

def function(**kwargs):
    print( kwargs, type(kwargs))
function(a=2)   # 打印出 {'a':2} <class 'dict'>

def function2(**kwargs):
    print(kwargs)
function2(a=1, b=2, c=3)  # 打印出  {'a':1, 'b':2, 'c':3}
参数arg、args、kwargs三个参数的位置必须是一定的。必须是(arg,args,**kwargs)这个顺序,否则程序会报错
def function(arg,*args,**kwargs):
    print(arg,args,kwargs)

function(6,7,8,9,a=1, b=2, c=3)  # 打印出  6  (7,8,9)  {'a':1, 'b':2, 'c':3}
上一篇下一篇

猜你喜欢

热点阅读