首页 > 编程语言 >python中的*args**和**kwargs

python中的*args**和**kwargs

时间:2024-01-13 20:44:39浏览次数:31  
标签:arg3 kwargs python arg1 arg2 args arg

首先并不是必须写成*args 和**kwargs。 只有变量前⾯的 *(星号)才是必须的。当然你也可以写成*var 和**vars等等,而写成*args 和**kwargs只是⼀个通俗的命名约定。

*args 和**kwargs主要用于函数定义,你可以将不定数量的参数传递给⼀个函数。

*args 是⽤来发送⼀个非键值对的可变数量的参数列表给⼀个函数。

举个例子来理解:

def test_var_args(f_arg, *argv):
    print("first arg:", f_arg)
    for	arg	in	argv:
        print("another arg *argv:",	arg)
test_var_args('A', 'B', 'C', 'D')
#输出如下:
first arg: A
another arg *argv: B
another arg *argv: C
another arg *argv: D

**kwargs 允许你将不定长度的键值对, 作为参数传递给⼀个函数。 如果你想要在⼀个函数里处理带名字的参数, 你应该使里**kwargs。

再次举个例子来理解:

def greet_me(**kwargs):
    for	key, value in kwargs.items():
        print("{0} == {1}".format(key, value))

greet_me(name="Bob")
# 输出如下:
name == Bob

综合举例:

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

args = ("one", 2, 3)
test_args_kwargs(*args)
# 输出
arg1: one
arg2: 2
arg3: 3
kwargs = {"arg3": 3, "arg2": 2,	"arg1":	"one"}
test_args_kwargs(**kwargs)
# 输出
arg1: one
arg2: 2
arg3: 3

如果你想在函数⾥同时使用所有这三种参数, 顺序是这样的:

some_func(fargs, *args,	**kwargs)

标签:arg3,kwargs,python,arg1,arg2,args,arg
From: https://www.cnblogs.com/jl1771/p/17962897

相关文章

  • linux环境Python安装
    1、下载源码华为云镜像地址下载pythonPython加速地址:https://repo.huaweicloud.com/python/2、安装前置依赖yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-d......
  • python socket服务端
    pythonsocket服务端importsocket#创建socket对象server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#绑定IP地址和端口号server_socket.bind(('127.0.0.1',8000))#监听连接server_socket.listen(1)print('等待客户端连接...')whileTru......
  • python中如何在多层循环中使用break/continue
    关于break/continue这两个关键字在平常的使用过程中一直比较迷糊。好不容易理解了吧,过段时间不使用好像忘记了什么。这个问题也是很多初学者比较容易提及的问题。先通过一个简单的单层循环来了解一下这两个关键字的使用。print('=============单层循环使用=============')for......
  • python回调函数
    回调函数在各种编程函数中都是比较常见的,回调函数的出现主要是为了降低函数之间调用的耦合性,从而实现解耦。简单来说,如果一个函数可以作为被传递就称这个函数为回调函数。比如:func1(func2()),那么func2就是回调函数。此时,只需要知道func2这个函数的功能是什么,在执行func1时调用fu......
  • 十行python代码实现文件去重,去除重复文件的脚本
    1.导入依赖'''导入依赖'''frompathlibimportPathimportfilecmp2.函数说明filecmp.cmp(path1,path2,shallow=True)path1/path2:待比较的两个文件路径。shallow:默认为True,即只比较os.stat()获取的元数据(创建时间,大小等信息)是否相同,设置为False的话,在对比文件的......
  • python经典有序序列的list列表推导式
    生成一个数据列表#初始化一个列表list_1=[]#使用循环生成一个列表数据forvalinrange(0,20,1):#加入集合list_1.append(val)#打印列表数据print(list_1)#[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]使用列表推导式生......
  • xargs
    xargs给其他命令传递参数的一个过滤器,又称管道命令,构造参数等。是给命令传递参数的一个过滤器,也是组合多个命令的一个工具它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。简单的说就是把其他命令的给它的数据,传递给它后面的命令作为参数选项-d为输入指......
  • Python 潮流周刊第 35 期(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。周刊全文:https://pythoncat.top/posts/2024-01-13-weekly以下是本期摘要:......
  • [Python学习记]个人感受(持续更新)
    ------24/01/13------ 大家好,到目前为止我已经学习到if条件语句的使用了,准备学习循环语句,if语句学的薄浅还得多加练习实际应用!关于if的应用我自主设计了几个程序,希望大佬可以多加指点 ------23/11/13------ 大家好,我是小县城高中的一名学生 在我初中时期就已经知道主......
  • RK3568 学习笔记 : 解决 linux_sdk 编译 python 版本报错问题
    前言最近买了【正点原子】的RK3568开发板,下载了开发板的资料,包括LinuxSDK,这个LinuxSDK占用的空间比较大,扩展了一下VM虚拟机ubuntu20.04的硬盘空间,编译才正常通过。编译RK3568LinuxSDK时,遇到python版本的问题,这里做个记录【正点原子】rk3568开发板资料与Lin......