博客
关于我
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-如何使用FastAPI和uvicorn.run而不阻塞线程?
查看>>
Python-字典
查看>>
python-字符串
查看>>
Python-将二进制遮罩转换为多边形
查看>>
python-文件操作
查看>>
PYTHON-模块 sys os random shutil-练习
查看>>
Python-模块与包的管理
查看>>
PYTHON-模块定义 搜索路径
查看>>
Python-爬虫工程师-面试总结
查看>>
Python-类与文件读取结合
查看>>
python-类思想-实现简单增删查改
查看>>
python-网络编程
查看>>
python写入文件出现空行
查看>>
PYTHON-返回给定x的多边形路径的y坐标
查看>>
python-进程池与线程池,协程
查看>>
Python-通过函数传递变量
查看>>
Python内置函数详解——总结篇
查看>>
Python.对象集合中的标识.和散列
查看>>
Python.硒.拖放错误“AttributeError:move_to 需要 WebElement“
查看>>
Python内置函数详解
查看>>