公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。 废话不多说,开始今天的题目: 问:Python中 *args 和 **kwargs 的含义? 答:在python中,*args和**kwargs通常使用在函数定义里。*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不知道调用者会传递几个参数。ps: *args和**kwargs只是一个大家都遵守的习惯,名字可以任意写的 。 1. *args例子for i in args: print(i) func(1,2,3,4) 运行结果: 1 2 3 4 2.**kwargs 例子**kwargs允许你传递不定量个关键字参数。如果你需要在函数中定义不定量个命名参数,那么你就要使用**kwargs了,它会把关键字参数转化为dict(键值对参数组),例子如下面代码所示: for i in kwargs: print(i,kwargs[i]) func(a=1,b=2,c=3,d=4) 运行结果: a 1 b 2 c 3 d 4 for i in kwargs: print(i,kwargs[i]) func(1,2,3,4) 运行结果: Traceback (most recent call last): File "F:/pyworkspace/hello.py", line 4, in <module> func(1,2,3,4) TypeError: func() takes 0 positional arguments but 4 were given 如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言! 更多题目: 31、Python中__new__和__init__的区别? 关注小猿公众号,每天学习一道题 |
|