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

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

Python中的*args和**kwargs:灵活处理函数参数

在编写Python函数时,有时候函数的参数数量是不确定的,这时候可以使用*args和kwargs来处理。*args用于接收没有名称的参数,而kwargs用于接收带有名称的参数。

*args:处理可变数量的无名参数

*args是一个特殊的语法,表示函数参数的组合列表。它可以接收任意数量的无名参数,并将这些参数作为一个元组返回。

例如,可以定义一个函数fun_var_args(farg, *args),它接收一个固定参数farg和任意数量的其他参数。具体实现如下:

def fun_var_args(farg, *args):    print("arg:", farg)    for value in args:        print("another arg:", value)

调用这个函数时,可以传递多个参数,它们会被打包到args元组中。例如:

fun_var_args(1, "two", 3)  # *args可以当作可容纳多个变量组成的list

运行结果如下:

arg: 1another arg: twoanother arg: 3

**kwargs:处理可变数量的具名参数

**kwargs是一个字典,接收带有名称的参数。它允许我们在函数调用时指定键值对,这些键值对会被存储在函数内部的字典中。

例如,可以定义一个函数fun_var_kwargs(farg, **kwargs),它接收一个固定参数farg和任意数量的具名参数。具体实现如下:

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

调用这个函数时,可以传递多个具名参数,它们会被存储在kwargs字典中。例如:

fun_var_kwargs(1, myarg2="two", myarg3=3)

运行结果如下:

arg: 1another keyword arg: myarg2: twoanother keyword arg: myarg3: 3

综合使用*args和**kwargs

有时候,我们可能需要同时使用*args和**kwargs。例如,可以定义一个函数fun_var_args_call(arg1, arg2, arg3, *args, **kwargs),它接收三个固定参数和任意数量的无名参数,以及具名参数。

例如:

def fun_var_args_call(arg1, arg2, arg3, *args, **kwargs):    print("arg1:", arg1)    print("arg2:", arg2)    print("arg3:", arg3)

调用这个函数时,可以传递多个参数,它们会被分配给arg1、arg2、arg3,剩余的无名参数会被打包到args元组中,具名参数会被存储在kwargs字典中。例如:

args = ["two", 3]fun_var_args_call(1, *args)  # args可以当作可容纳多个变量组成的list

运行结果如下:

arg1: 1arg2: twoarg3: 3

或者:

kwargs = { "arg3": 3, "arg2": "two" }fun_var_args_call(1, **kwargs)

运行结果如下:

arg1: 1arg2: twoarg3: 3

通过*args和**kwargs,我们可以灵活地处理函数参数,适用于不同的场景。

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

你可能感兴趣的文章
python与c语言混合编程_你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!...
查看>>
python与excel
查看>>
Python与Excel的完美邂逅:深入浅出,手把手教你轻松玩转Excel数据操作
查看>>
python与flask_Python编程中flask的简介与简单使用
查看>>
python与图灵机器人交互(WXPY版本)
查看>>
python与运算符_python运算符
查看>>
python两个列表获取交集,并集,差集
查看>>
python两个字典合并,两个list合并
查看>>
Python两个版本共存时,命令行升级pip
查看>>
Python两个版本共存时,怎么验证是否安装成功 scrapy
查看>>
Python两个版本共存时,通过pip安装Scrapy
查看>>
python两组变量的相关关系散点图_变量是什么?变量间的两种关系——函数关系和相关关系(小学版)...
查看>>
Python中 pass语句的作用
查看>>
python中 urllib, urllib2, httplib, httplib2 几个库的区别
查看>>
python中 yaml库 & json库 & xmltodict库使用
查看>>
python中 将你的名字转化成为二进制并输出
查看>>
Python中*args 和**kwargs的用法
查看>>
Python中*args 和**kwargs的用法
查看>>
Python中*args和**kwargs的使用
查看>>
python中0、1、True、False、if条件
查看>>