专栏首页Java进阶之路Python函数中的*、*args、**kwargs

Python函数中的*、*args、**kwargs

==用法1:不定长参数==

当函数需要的参数数量不确定的时候,可以使用args 和 kwargs , 所有的位置参数保存在args中,以元组的形式保存,调用时直接用args,不需要带 * 所有的关键参数保存在kwargs中,以字典的形式保存,调用时也直接使用kwargs

#demo1:
def func(*args, **kwargs):
    print(args)
    print(kwargs)

func("jack", 18, "male")
#output:
('jack', 18, 'male')
{}

调用时没有使用关键参数,所以kwargs字典里面是空

#demo2:
def func(*args, **kwargs):
    print(args)
    print(kwargs)

func(name="jack", age=18, sex="male")
#output:
('jack', 18)
{'sex': 'male'}

调同时使用位置参数和关键参数,关键参数要放在位置参数后,否则会报错

==注意:==
  • *args 和 **kwargs里面的参数名args、kwargs可以为任何变量名,约定俗成用args和kwargs

==用法2:* 和 *para 后的参数调用时必须是关键参数==

#demo1:
def func(x, *, y):
    print(x, y)

func(3, y=5)
func(x=3, y=5)
# func(x=3, 5)  报错
# func(3, 5)    报错
#output:
3 5
3 5
  • *之后的参数调用必须是关键参数, 之前的不限制,
  • 如果 * 放在参数列表的第一个,则后面的参数都必须用关键参数
#demo2:
def func(x, *para, y):
    print(x, para, y)

func(3, 4, y=5)
#output:
3 (4,) 5

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python函数中的*args, **kwargs是什么意思?如何使用?

    当我们在写程序时,不确定将来要往函数中传入多少个参数,即可使用可变参数(即不定长参数),用*args,**kwargs表示。

    用户8639654
  • python函数——形参中的:*args和**kwargs

    多个实参,放到一个元组里面,以*开头,可以传多个参数;**是形参中按照关键字传值把多余的传值以字典的方式呈现

    菲宇
  • Python中*args和**kwargs

    在python开发的过程中,经常会遇到了*args和**kwargs这两个魔法变量,那么它们是什么呢?

    SEian.G
  • python *args,**kwargs参数

    西西嘛呦
  • python中的参数传递*args与**kwargs

    *args与**kwargs可以将任意数目的参数传递给函数,主要用在函数定义中,最常见的是在装饰器中使用。

    生信编程日常
  • Python中 *args 和 **kwargs 的含义?

    小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

    程序IT圈
  • python中*args和**kwargs的区别

    *args是函数使用者可以发送任意数量非键值对的参数传给这个函数,*args在接收参数后,将返回值以元组tuple的形式返回。

    用户7886150
  • Python中 *args 和 **kwargs 的含义?

    答:在python中,*args和**kwargs通常使用在函数定义里。*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不...

    用户1564362
  • Python中 *args 和 **kwargs的用法

    总是会在一些代码中看到*args和**kwargs,一直不知道具体怎么用,今天整理了一下:

    BigYoung小站
  • Python万能参数(*args, **kwargs)

    Python内置一颗这样的语法糖,它允许函数声明时以(*args, **kwargs)声明它的参数,而(*args, **kwargs)可以接受任何类型的参数。

    Steve Wang
  • python可变参数的理解, *args, **kwargs

    在Python函数中,除了参数还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。如果读者经常看 Pyth...

    烤粽子
  • [949]python不定长参数*args和**kwargs

    在python语言写成的模块中的函数里,常常可以看到函数的参数表列里面有这两个参数,形如:

    周小董
  • Python 可变参数 *args **kwargs 的再了解

    可以从上面的结果来看,args可以把多余的数字放入一个元组中,而后面的则被kwargs放入字典中。

    Devops海洋的渔夫
  • python中*args 和 **kwargs 的用法学习笔记

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

    用户7886150
  • Python参数详解:什么是*args和**kwargs?

    一颗星号(*)已经两颗星号(**)都表示能够接收可变长度的参数。但是如何区别和理解这里的一颗星和两颗星呢?我们接下来通过例子详细介绍二者的联系和区别。

    HuangWeiAI
  • Python参数详解:什么是*args和**kwargs?

    一颗星号(*)已经两颗星号(**)都表示能够接收可变长度的参数。但是如何区别和理解这里的一颗星和两颗星呢?我们接下来通过例子详细介绍二者的联系和区别。

    数据森麟
  • 谈一谈python中的魔法变量*args和**kwargs

    ,没有注释,没有封装,没有可读性。哎,幸亏发现及时,现在正在写一个新的任务,刚好可以好好弄弄架构和代码了!

    zenRRan
  • Python3 * 和 ** 运算符

    你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *a...

    用户7886150
  • python 装饰器使用总结

    def wrapper_method1(func):# func用于接收被装饰的函数地址

    授客

扫码关注云+社区

领取腾讯云代金券