Python培训
美国上市Python培训机构

400-111-8989

热门课程

python编程*args 和 **kwargs 两个参数用法讲解

  • 发布:Python培训
  • 来源:趣喜欢编程
  • 时间:2018-06-12 13:40

今天的python培训为大家带来的是*args 和 **kwargs 两个参数的用法,这两个参数对于刚接触 Python 的人会另他们很迷惑,如果你也经常搞混淆,那么本文是拯救你的福音!

其实对于这两个参数来说,只有 * 是最重要的,你也可以起名叫 *var 和 **vars,名字无所谓是什么,但是惯例一般是用 *args 和 **kwargs。

使用 *args

*args 和 *kwargs 用在函数定义中。*args 接收多个参数,如果你不知道函数输入的参数数量,可以直接用 *args。

请看下面的例子:

1#args-and-kwargs.py

2def test_args(a,*args):

3print('first param is',a)

4for arg in args:

5print('next param is',arg)

6

7test_args(1,'python','hello','hi')

输出:

1bogon:quxihuan-python-code alex$ python3 args-and-kwargs.py

2first param is 1

3next param is python

4next param is hello

5next param is hi

使用 **kwargs

**kwargs 允许你传入函数的参数的形式为键值,例如 name=alex,可以传递多个键值。

1def test_kwargs(**kwargs):

2if kwargs is not None:

3for key,value in kwargs.items():

4print('{}={}'.format(key,value))

5

6test_kwargs(name='alex',age=18)

输出:

1name=alex

2age=18

使用 *arg 和 **kwargs

*args 和 *kwargs 可以一块使用:

1def test_args_and_kwargs(*args,**kwargs):

2print(args,type(args))

3print(kwargs,type(kwargs))

4

5test_args_and_kwargs('a','b',name='alex',age=17)

输出:

1('a','b')<class 'tuple'>

2{'name':'alex','age':17}<class 'dict'>

可以看到,args 的类型是元组,kwargs 的类型是字典。

函数调用使用 *arg 和 **kwargs

可以使用 *args 和 **kwargs 解析一个列表或者字典到函数指定的参数中。

1def test_args(a1,a2):

2print('a1:',a1)

3print('a2:',a2)

4

5p1=('hello',18)

6test_args(*p1)

7

8print()

9d1={'a1':'hello','a2':18}

10test_args(**d1)

输出:

1a1:hello

2a2:18

3

4a1:hello

5a2:18

*args 是按次序把一个列表解析到函数的参数中。注意列表的参数数量不能大于或者小于函数参数的数量,否则编译器会报类型错误的异常。

**kwargs 是通过对比参数的名称和字典的键名称,如果相等,赋值给函数的参数。注意字典的键值和参数必须匹配,否则会报类型错误的异常。

恭喜你阅读完了本文,相信你对*args 和 **kwargs 两个参数的用法有所掌握,多练习练习,你就会非常熟练,好了,你还有python相关的其他疑问吗?欢迎你来达内python培训机构进行咨询。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

免费预约企业总监级讲师试听课

怕钱不够?就业挣钱后再付学费!    怕学不会?0基础入学,达内定制课程!     担心就业?近12万家雇主企业,推荐名企就业!

上一篇:送你入门python的三大神器,在你进阶的路上助你一臂之力!
下一篇:各个维度深入剖析python中整型不会溢出的问题

掌握这八个python高效数据分析的技巧,python大神都会的!

python培训知识分享之爬虫原理

python培训分享:为什么推荐python开发人员使用Pipenv?

python应用|七夕快到了,教你用python去表白!

选择城市和中心
贵州省

广西省

海南省