美文网首页学习提升Python
Python函数中的*、*args、**kwargs

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

作者: 寇寇寇先森 | 来源:发表于2020-02-05 21:44 被阅读0次

==用法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

相关文章

网友评论

    本文标题:Python函数中的*、*args、**kwargs

    本文链接:https://www.haomeiwen.com/subject/kquexhtx.html