python双星号什么运算_**(双星号/星号)和*(星号/星号)对参数有什么作用?...

本文详细介绍了Python中的*args和**kwargs语法,它们用于函数定义时接收任意数量的位置参数和关键字参数。*args将所有位置参数打包成元组,而**kwargs则将关键字参数打包成字典。这两种用法可以与其他普通参数一起使用,提供了灵活的函数调用方式。此外,还提到了在Python3中,*l可以用于解压缩参数列表,以及*kwarg1, *kwarg2等新语义,限制了关键字参数的使用。
摘要由CSDN通过智能技术生成

小编典典

*args和**kwargs是一种常见的成语,以允许参数,以作为部分所述功能的任意数量的多个上定义函数 Python文档英寸

该*args给你的所有函数参数为一个元组:

def foo(*args):

for a in args:

print(a)

foo(1)

# 1

foo(1,2,3)

# 1

# 2

# 3

该 **kwargs会给你所有的 关键字参数除了那些与作为字典的形式参数。

def bar(**kwargs):

for a in kwargs:

print(a, kwargs[a])

bar(name='one', age=27)

# age 27

# name one

这两个习惯用法都可以与普通参数混合使用,以允许使用一组固定参数和一些可变参数:

def foo(kind, *args, **kwargs):

pass

也可以以其他方式使用此方法:

def foo(a, b, c):

print(a, b, c)

obj = {'b':10, 'c':'lee'}

foo(100,**obj)

# 100 10 lee

*l习惯用法的另一种用法是在调用函数时解压缩参数列表。

def foo(bar, lee):

print(bar, lee)

l = [1,2]

foo(*l)

# 1 2

在Python 3中,可以*l在分配的左侧使用(Extended Iterable Unpacking),尽管在这种情况下它提供的是列表而不是元组:

first, *rest = [1,2,3,4]

first, *l, last = [1,2,3,4]

Python 3还添加了新的语义):

def func(arg1, arg2, arg3, *, kwarg1, kwarg2):

pass

该函数仅接受3个位置参数,之后的所有内容*只能作为关键字参数传递。

2020-02-03

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值