【Python】函数中的*args和**kwargs是个什么东西?

本文介绍了Python中*args和**kwargs的用途,包括它们如何作为可选参数使用,如何拆分可迭代对象,以及如何在函数中处理位置参数和关键词参数。通过实例解释了它们在处理不同数量和类型参数时的灵活性。
摘要由CSDN通过智能技术生成

1. 概述

在Python代码中,经常见到函数中有*args和**kwargs写法,它们都起到了可选参数(optional arguments)的作用。那么具体怎么使用呢?且看下文细细分解。

2. *和**

在了解*args和**kwargs的作用之前,首先要理解*和**在Python中的使用。*和**主要有三方面的用途,(一)是对可迭代对象进行拆分,(二)可变变量的赋值,(三)函数的可选参数标志。[1]

2.1 用于对可迭代对象进行拆分

在Python中,一切内置了__iter__方法的对象都是可迭代对象,典型的可迭代对象包括元组(tuple)、列表(list)、集合(set)、字典(dict)等等。这种拆解主要运用在函数的参数语境中,以print函数为例,以下5个表达式是完全等价的:

print("a", "b", "c")                
print(*("a", "b", "c"))             # 元组 
print(*["a", "b", "c"])             # 列表
print(*{"a", "b", "c"})             # 集合
print(*{"a": 1, "b": 2, "c": 3})    # 注意:对字典拆解时只拆解key
print(*"abc")                       # 注意:字符串也是可迭代对象

输出结果完全一样:

a b c
a b c
a b c
a b c
a b c
a b c

除了函数参数语境,赋值语境下也可以对可迭代对象进行拆分,如

a = *range(3),
b 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值