默认参数,不固定参数 *args,**kwargs

Posted 人无远虑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了默认参数,不固定参数 *args,**kwargs相关的知识,希望对你有一定的参考价值。

 

默认参数

默认参数就是定义参数的时候,给形参赋值。

自己看

def test(x,y=3):
    print(x)
    print(y)
test(1)         test(1,y=5)
test(1,5)

 

1,特点,调用函数的时候,默认参数非必须传递

2,用途,

  可以提前把一些值固定住,例如默认安装值

  固定链接数据库的端口号

 

不固定参数

#args:接受N个位置参数,转换成元组

实例1
def test(*args):
    print(args)
#args:接受N个位置参数,转换成元组
test(32,23,11,31,22,44,11)
test(*[32,23,11,31,22,44,11])  #args=tuple([32,23,11,31,22,44,11])

  实例2

def test1(x,*args):
    print(x)
    print(args)

test1(1,32,3,44,3)

  

#**kwargs    把N个关键字参数转换成字典

实例3

def test2(**kwargs):    #把N个关键字参数转换成字典
    print(kwargs)
test2(name=\'qiangql\',age=12,job=\'fuzeshuai\')
test2(**{\'name\':\'qiangql\',\'age\':12,\'job\':\'shuai\'})

实例4

def test3(name,**kwargs):
    print(name)
    print(kwargs)
test3(\'qiangql\',age=12)

实例5

def test4(name,age=12,**kwargs): #参数组往后放
    print(name)
    print(age)
    print(kwargs)
test4(\'qiangql\')
test4(\'qiangql\',sex=\'m\',hobby=\'bmw\',job=\'shuai\')

 

实例6
def test5(name,age=12,*args,**kwargs): #位置参数不能在关键字参数后边
    print(name)
    print(age)
    print(args)     #*args 接受位置参数
    print(kwargs)   #kwargs接受字典,关键字参数

test5(\'qiangql\' ,sex=\'m\',hobby=\'bmw\',job=\'shuai\') 

 

 

以上是关于默认参数,不固定参数 *args,**kwargs的主要内容,如果未能解决你的问题,请参考以下文章

python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。

python之动态参数 *args,**kwargs和命名空间

python函数——形参中的:位置参数,关键字参数,默认参数,*args 和 **kwargs的关系

python-函数-非固定参数

args 或 kwargs 是不是接受 python 参数的默认值? [复制]

args *args **kwargs区别