博客
关于我
Python中*args和**kwargs的使用
阅读量:800 次
发布时间:2023-03-09

本文共 1564 字,大约阅读时间需要 5 分钟。

功能参数与函数调用

在Python编程中,*args和**kwargs是用来处理可变长参数的强大工具。它们分别用于传递位置参数和关键字参数,能够让函数接收任意数量的输入,极大地提高了函数的灵活性。

*args:可变长位置参数

*args可以接收一个或多个不带命名的位置参数。这些参数会被传递为一个元组。例如,定义一个函数:

def test_var_args(farg, *args):    print("formal arg:", farg)    for arg in args:        print("another arg:", arg)

当调用时,传递一个位置参数以及多个额外参数:

test_var_args(1, "xiaobei", 28)

输出结果为:

formal arg: 1another arg: xiaobeianother arg: 28

**kwargs:可变长关键字参数

**kwargs用于接收一个或多个带命名的关键字参数。这些参数会被传递为一个字典。例如,定义一个函数:

def test_var_kwargs(farg, **kwargs):    print("formal arg:", farg)    for key in kwargs:        print("another keyword arg: %s: %s" % (key, kwargs[key]))

当调用时,传递一个位置参数以及多个关键字参数:

test_var_kwargs(farg=1, myarg2="xiaobei", myarg3=3)

输出结果为:

formal arg: 1another keyword arg: myarg2: xiaobeianother keyword arg: myarg3: 3

调用函数时的使用

在实际调用函数时,可以通过*args和**kwargs来灵活传递参数。例如:

def test_var_args_call(arg1, arg2, arg3):    print("arg1:", arg1)    print("arg2:", arg2)    print("arg3:", arg3)

当需要传递多个位置参数时,可以将其包装为一个元组:

args = ("hanxiaobei", 28)test_var_args_call(1, *args)

输出结果为:

arg1: 1arg2: hanxiaobeiarg3: 28

同样,当需要传递多个关键字参数时,可以将其包装为一个字典:

kwargs = {    "arg3": 35,    "arg2": "xiaobei"}test_var_args_call(1, **kwargs)

输出结果为:

arg1: 1arg2: xiaobeiarg3: 35

示例:接收任意数量的数并计算乘积

以下是一个实用的示例,展示了如何利用*args接收任意数量的数并计算乘积:

def product(*args):    total = 1    for num in args:        total *= num    print(total)

当调用时,传递多个数:

product(2, 6, 3, 4, 5, 6, 3, 1, 2, 34, 43, 57)

输出结果为:

12*6=1212*3=3636*4=144144*5=720720*6=43204320*3=1296012960*1=1296012960*2=2592025920*34=881280881280*43=3793304037933040*57=2164289280

最后的乘积为2164289280。

转载地址:http://rnlfk.baihongyu.com/

你可能感兴趣的文章
Python化身“安全老中医”:一键搞定工控系统漏洞,从零基础到精通,收藏这篇就够了!
查看>>
Python加速运行技巧
查看>>
python办公自动化基础遍历文件夹
查看>>
python办公自动化基础输出文件和文件夹
查看>>
python办公自动化基础搜索文件
查看>>
python前端之css
查看>>
Python制作进度条,原来有这么多方法
查看>>
Python制作简单的学生成绩管理系统
查看>>
python制作甘特图的基本知识(附Demo)
查看>>
python制作一个简单的服务器,【Python】 做一个简单的 http 服务器
查看>>
Python到底能做什么?它的优点在哪?
查看>>
python利用pytorch库导出图像分割算子
查看>>
python利用pyshark监听网卡来抓包其中pyshark中摸索的一些可用参数
查看>>
python利用excel分析过杀漏失
查看>>
python判断汉字数目
查看>>
python判断文件是空的,如果是空的,就删除
查看>>
python判断密码是否正确_python密码判断是否符合要求的方法
查看>>
python判断字符串包含中文_Python 判断字符串是否包含中文
查看>>
python删除第一行_Python 乱码指北:一行删掉根目录
查看>>
Python删除列表元素的三种方法
查看>>