去面试的时候,做了一道笔试题——什么是*args和**kwargs,区别在哪里?
有点蒙,好像见过,但是不知道具体的意思。所以回来查了一下资料,做一下笔记。

总的来说,*args代表任何多个无名参数,返回的是元组;**kwargs表示关键字参数,所有传入的key=value,返回字典;

*args和**kwargs的用途:
*args 和 **kwargs 主要用于函数定义, 可以将不定数量的参数传递给一个函数。
*args 是用来发一个非键值对的可变数量的参数列表给一个函数; kwargs允许将一个不定长度的键值对,作为参数传递给一个函数。如果需要在一个函数中处理带名字的参数时,此时就应该使用kwargs了。

def test(a,*args,**kwargs):print(a)print(args)print(kwargs)
test(1,3,5,7,c='2',d=4)

1
(3, 5, 7)
{‘c’: ‘2’, ‘d’: 4}

在test(1,3,5,7,c=‘2’,d=4)中,函数里参数对应的数值为:a=1,*args表示剩下的没有名称的参数,**kwargs表示剩余的键值对。

def ak(*args,**kwargs):print('args=',args)print('kwargs=',kwargs)print('***************************************')
if __name__=='__main__':ak(2,4,6,8)ak(a=2,b=4,c=6,d=8)ak(2,4,6,8,a=1,b=3,c=5)ak('x', 2, None, a=4, b='6', c=8)#ak('a', a=1, 1, None, b='2', c=3)

同时使用*args和kwargs时,*args参数必须要列在kwargs前,否则会报错。

ak('a', a=1, 1, None, b='2', c=3)

File “”, line 1
ak(‘a’, a=1, 1, None, b=‘2’, c=3)
^
SyntaxError: positional argument follows keyword argument

*args和**kwargs是什么意思相关推荐

  1. python 中*args 和 **kwargs的区别

    *args的用法 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数: def print_everything(*args):for count, thing ...

  2. Python中*args和**kwargs的区别

    https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉, ...

  3. Python中*args 和**kwargs的用法探讨

    当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值.不确定的意思可以是有,有几个,也可以是没有 *args可以当作可容纳多个变量组成的l ...

  4. Python3中参数*args和**kwargs介绍

    在Python中,我们可以使用两种特殊符号将可变数量的参数传递给函数:*args和**kwargs.你可以使用任何单词代替args和kwargs,但通常做法是使用args和kwargs.       ...

  5. Python中的*args和**kwargs是什么?该如何使用?

    2020-01-16 12:30:00 全文共2911字,预计学习时长9分钟 来源:Pexels 在编程中,函数就是生命! 作为使用Python的新手--无论是编程新手,还是熟悉另一语言的人--都需要 ...

  6. python的认识_理解 Python 中的 *args 和 **kwargs

    Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one ...

  7. 【Python】Python中*args 和**kwargs的用法

    好久没有学习Python了,应为工作的需要,再次拾起python,唤起记忆. 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值. 还是 ...

  8. python中args和kwargs_Python 函数参数*args和**kwargs

    尽管*args和**kwargs参数不受重视,但这它们是Python中非常有用的特性.了解其中的潜能会让你成为更高效的开发者. *args和**kwargs参数到底有什么用呢?它们能让函数接受可选参数 ...

  9. 风云编程python-Python中*args 和**kwargs的用法

    刚开始学习python的时候,对有关args,kwargs,和*的使用感到很困惑.相信对此感到疑惑的人也有很多.我打算通过这个帖子来排解这个疑惑(希望能减少疑惑). 让我们通过以下5步来理解: 1. ...

  10. Python : 什么是*args和**kwargs[转载]

    例子 def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------- ...

最新文章

  1. koa+mongoose基础入门
  2. UI自动化录制工具----UI Recorder
  3. iphone如何查看wifi密码_WIFI密码如何破解
  4. 的数据湖_一文读懂云原生数据湖体系
  5. 搬家后第一次缴电费,查询客户编号的解决办法
  6. 无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信
  7. 2021中国移动经济发展报告
  8. 20 SD配置-主数据-定义客户账户组
  9. Moodle中的角色与权限控制
  10. python输出重定向_使用Python子进程重定向标准输出到标准输入...
  11. 活动报名管理系统 php源码,活动报名系统微预约源码,万能表单8.1.21版
  12. 学STM32(STM32F103RCT6)
  13. 【机器学习】如何使用随机网格搜索,以缩短网格搜索速度?
  14. 自定义分页信息java_java-displaytag自定义分页
  15. ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
  16. 计算机一级荷塘月色操作题,《荷塘月色》课后习题及答案
  17. IBM识别癌变细胞技术取得重大突破,用深度学习与神经网络重塑病理学
  18. Maya模型制作与场景建模
  19. 【基础理论】介绍一个概率分布:柯西分布
  20. 数据结构思维导图——Java版

热门文章

  1. dolphinscheduler 1.2.1 运行datax任务,重复同步数据库问题排查记录
  2. 一文详解 MySQL 的锁机制
  3. 全国计算机工资最高的城市,2017中国平均工资最高的城市排名(3)
  4. Day14、随处可见的对话框
  5. Golang GOPATH问题
  6. 6. MPLS VP恩
  7. Smali语法详解(1)
  8. Spring入门介绍
  9. mysql查询姓李的老师的个数_MySQL 面试题
  10. 300-700题红题第二题