Python中关于 *args与**args的用法及说明
作者:杨哥学编程 时间:2022-04-01 08:24:38
关于 *args与**args的用法
*args 和 **kwargs主要用于函数定义,你可以将不定数量的参数传递给某个函数。
*args
*args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)
*args是用来发送一个非键值对的可变数量的参数列表给一个函数。
*args的用法:当传入的参数个数未知,且不需要知道参数名称时。
代码如下:
def func_arg(farg, *args):
print("formal arg:", farg)
for arg in args:
print("another arg:", arg)
func_arg(1,"youzan",'dba','hello')
# 输出结果如下:
# formal arg: 1
# another arg: youzan
# another arg: dba
# another arg: hello
**kwargs
**kwargs 传入键值对(例如:num1=11,num2=22)
**kwargs 允许将不定长度的键值对作为参数传递给一个函数。如果想要在一个函数里处理带名字的参数,应该使用 **kwargs。
代码如下:
#利用它转换参数为字典
def kw_dict(**kwargs):
return kwargs
print(kw_dict(a=1,b=2,c=3))
# 输出结果如下:
# {'a': 1, 'b': 2, 'c': 3}
*args和**kwargs是什么意思
去面试的时候,做了一道笔试题——什么是*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
来源:https://blog.csdn.net/qq_47183158/article/details/116598952
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python图书管理系统
c++生成dll使用python调用dll的方法
如何利用Python实现简易的音频播放器
![](https://img.aspxhome.com/file/2023/9/89149_0s.png)
PHP 检查扩展库或函数是否可用的代码
server application error--IIS故障
余弦相似性计算及python代码实现过程解析
![](https://img.aspxhome.com/file/2023/0/87670_0s.png)
python局域网ip扫描示例分享
Python提取支付宝和微信支付二维码的示例代码
![](https://img.aspxhome.com/file/2023/2/70242_0s.jpg)
SQL中exists的使用方法
asp内置对象ObjectContext详解
用ASP编程实现网络内容快速查找
网站设计趋势: iPhones[译]
![](https://img.aspxhome.com/file/UploadPic/20099/21/iphone-45s.jpg)
Python数据正态性检验实现过程
![](https://img.aspxhome.com/file/2023/3/78703_0s.png)
sqlserver 导出插入脚本代码
详解Python字符串切片
![](https://img.aspxhome.com/file/2023/5/67425_0s.png)
Python安装jieba库详细教程
![](https://img.aspxhome.com/file/2023/5/84935_0s.png)
这些有问题的细节设计
![](https://img.aspxhome.com/file/UploadPic/20094/20/wangwang-84s.png)