当前位置:   article > 正文

【Python】函数中的*args和**kwargs是个什么东西?_为什么在python的函数名字里面,会有 *args 和 **kwargs

为什么在python的函数名字里面,会有 *args 和 **kwargs

1. 概述

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

2. *和**

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

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

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

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

输出结果完全一样:

  1. a b c
  2. a b c
  3. a b c
  4. a b c
  5. a b c
  6. a b c

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

  1. a = *range(3),
  2. b = *range(3), 3
  3. c =
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/763194
推荐阅读
相关标签
  

闽ICP备14008679号