默认参数,不固定参数 *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的关系