栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python---可变参数*args, **kwarg的应用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python---可变参数*args, **kwarg的应用

文章目录
  • 前言
  • 一、可变参数说明
  • 二、可变参数打包
  • 二、可变参数解包


前言

当函数的参数前面有一个星号*的时候表示是一个可变的位置参数,两个星号**表示是可变的关键字参数

一、可变参数说明

可对函数传递的参数进行打包(元组tuple或字典dictionary),也能打散(分解成单个元素),其中元组的打包和解包使用单星号*,字典的打包和拆解使用双行号**

二、可变参数打包

打包,就是将传递给函数的任意多个(也可以是零个)非关键字参数/关键字参数打包成一个元组/字典(元组只能接收非关键字参数,字典只能接收关键字参数)

代码如下(示例):

def param(*args, **kwarg):
    for i in args:
        print(i)
    for i,j in kwarg.items():
        print(j, j)
    print('*' * 20)

if __name__ == '__main__':
    param(1, 2, a=4, b=5)
    param(2, 3, a=1, b=2, c=3)

返回结果:

1
2
4 4
5 5
********************
2
3
1 1
2 2
3 3
********************

Process finished with exit code 0

二、可变参数解包

解包,就是将传递给函数的一个列表、元组或字典拆分成独立的多个元素然后赋值给函数中的参数变量(包括普通的位置参数,关键字参数,元组,字典也即**关键字参数)
代码如下(示例):

def param(*args, **kwarg):
    for i in args:
        print(i)
    for i,j in kwarg.items():
        print(j, j)
    print('*' * 20)

if __name__ == '__main__':
    a = (1, 2, 3)
    b = [1, 16, 22]
    c = {'a':11, 'b':13}
    param(a, c)
    param(*a, **c)
    param(b, c)
    param(*b, **c)

返回结果:

#说明:param(a, c)  输出a和b
(1, 2, 3)
{'a': 11, 'b': 13}
********************
#说明:param(*a, **c)  打散a和c
1
2
3
11 11
13 13
********************
#说明:param(b, c)  输出b和c
[1, 16, 22]
{'a': 11, 'b': 13}
********************
#说明:param(*b, **c)  打散b和c
1
16
22
11 11
13 13
********************
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号