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

python中*args和**kwargs的理解

时间:2024-09-05 22:13:42浏览次数:10  
标签:bar python args 参数 kwargs print 打包

python中*args和**kwargs的理解

打包(pack):*args是把多个位置参数打包成元组,** kwargs是把多个关键字参数打包成字典。

拆分(unpack):* args是把打包了的参数拆成单个的,依次赋值给函数的形参,** kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。

#*args,*作用,有两个:打包参数和拆分参数

#打包参数,将函数的五个参数打包成一个元组输出
def foo(*args):
    for i in args:
        print(i)
    print(type(args))

foo(1,2,3,4,5)

#拆分参数,将列表或是元组进行拆分
def bar(a, b, c, d=10):
    print(a, b, c, d)


bar(*[1, 2, 3])


# **kwargs,**的作用,分两种:打包参数(pack)和拆分参数(unpack)
'''
打包(pack):*args是把多个位置参数打包成元组,**kwargs是把多个关键字参数打包成字典。
拆分(unpack):*args是把打包了的参数拆成单个的,依次赋值给函数的形参,**kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。
'''
# **kwargs是把多个关键字参数打包成字典
def bar(**number):
    print(number)


bar(a=1, b=2, c=3)

# **kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。

def bar(a, b, c):
    print(a,b,c)


bar(**{'a': 1, 'b': 2, 'c': 3})



标签:bar,python,args,参数,kwargs,print,打包
From: https://www.cnblogs.com/lurenj/p/18399315

相关文章

  • 通过三元运算符让 Python 代码更简洁高效
    目录什么是三元运算符?三元运算符的基本用法三元运算符的实际应用场景深入理解:三元运算符与普通`if-else`的比较三元运算符的注意事项三元运算符在实际项目中的应用总结在编程中,代码的可读性和效率是两个至关重要的因素。而Python,作为一种以简洁和易读著称的编......
  • 【全网最全】2024年数学建模国赛C题保奖思路+成品论文+matlab/python代码等(后续会更新
    您的点赞收藏是我继续更新的最大动力!一定要点击末文的卡片,那是获取资料的入口!解题思路数据读取:使用Pandas库读取Excel文件中的数据。数据清洗:检查数据是否完整,处理可能的重复项或异常值。数据分析:基于地块类型、面积等特征进行基本的数据分析,例如统计每种地块类型的总面积......
  • python学习总结之面向对象
    1.面向对象(上)1.1定义面向对象编程:oop[objectorientedprogramming]是一种python的编程思路;面向过程:就是我们一开始学习的,按照解决问题的步骤去写代码【根据业务逻辑去写代码】,在思考问题的时候,首先分析'怎么按照步骤去实现'然后将问题解决拆解成若干个步骤,并将这些步骤对......
  • Python【2】问题
     目录模块与包是什么?赋值、浅拷贝和深拷贝的区别?Python中如何生成随机数?Python中的os模块常用方法?□os.path和sys.path分别表示什么意思?□赋值read、readline和readlines的区别?介绍一下except的作用和用法?□在except中return后还会不会执行finally中的代码?□xrange......
  • python 搜索路径及设置模块
    模块搜索路径当import某个模块时,解释器首先搜索具有该名称的内置模块,如果没有找到,将在变量sys.path给出的目录列表中搜索名为模块名.py的文件。sys.path包含了一下几个目录:输入脚本的当前目录;PYTHONPATH环境变量;python安装时的系统目录;>>>importsys>>>sys.pat......
  • Python【3】乌七八糟
    目录if__name__=="__main__ 模块名————__name__装饰器参数的优化——可以接受任何函数需要添加自定义参数——再套一层 语法糖——好甜!类initselfif__name__=="__main__ 在Python中,`if__name__=="__main__":`这行代码是一个常见的习惯用法,它的......
  • 十种Python循环优化策略
    在Python编程中,循环是最常见的控制结构之一。尽管Python的循环语法简单明了,但在处理大量数据或进行复杂计算时,循环可能会成为性能瓶颈。本文将介绍10种加速Python循环的方法,帮助在保持代码可读性的同时显著提高性能。1.使用列表解析(ListComprehensions)列表解析是一种简洁且高效的......
  • 深入浅出:理解Python中的上下文管理器
    在Python编程中,上下文管理器是一个强大的工具,它允许我们更优雅地处理那些需要设置和清理的资源。本文将从概念入手,逐步深入到实现层面,帮助读者更好地理解和使用Python中的上下文管理器。什么是上下文管理器?上下文管理器是通过__enter__()和__exit__()方法来实现的类或......
  • Python 版本管理工具选择与 Pyenv 使用说明
    Python版本管理工具的主要作用是帮助开发者在同一台机器上管理多个Python版本和环境。这对于开发和部署不同项目非常有用,因为不同项目可能依赖不同的Python版本或者不同的包版本。具体来说,Python版本管理工具应有以下功能:(1)避免依赖冲突,不同的项目可能依赖不同版本的库,使用......
  • [python]线程与进程的区别及代码演示
    进程与线程多线程socket,tcp服务器实现,在最底下区别:关系区别:​线程依赖于进程,一个进程至少会有一个线程特点区别:进程间的数据是相互隔离的,线程间数据是可以共享的线程同时操作共享数据,可能引发安全问题,需要用到互斥锁进程的资源开销比线程大多进程程序比单......