python中 是什么符号_在Python中星号*是什么意思?

本文详细介绍了Python函数中位置参数和关键字参数的使用,包括*args和**kwargs的含义。通过示例解释了如何处理多余的位置参数和关键字参数,以及如何将字典和元组解包到函数调用中。示例展示了当传入的参数超过函数定义时,如何捕获并打印这些额外参数。
摘要由CSDN通过智能技术生成

在语言参考中见函数定义。如果表单*标识符存在,它将被初始化为接收任何多余位置参数的元组,默认为空元组。 如果表单**标识符存在,它将被初始化为一个接收任何多余关键字参数的新字典,默认为一个新的空字典。

另外,见函数调用...

假设知道位置和关键字参数是什么,下面是一些示例:

例1:# Excess keyword argument (python 2) example:

def foo(a, b, c, **args):

print "a = %s" % (a,)

print "b = %s" % (b,)

print "c = %s" % (c,)

print args

foo(a="testa", d="excess", c="testc", b="testb", k="another_excess")

正如在上面的例子中所看到的,我们只有参数a, b, c在签署foo函数。自d和k不存在,它们被放入args字典中。程序的输出是:a = testa

b = testb

c = testc

{'k': 'another_excess', 'd': 'excess'}

例2:# Excess positional argument (python 2) example:

def foo(a, b, c, *args):

print "a = %s" % (a,)

print "b = %s" % (b,)

print "c = %s" % (c,)

print args

foo("testa", "testb", "testc", "excess", "another_excess")

在这里,由于我们正在测试位置参数,所以多余的必须是最后的,并且* args将它们打包成一个元组,所以这个程序的输出是:a = testa

b = testb

c = testc

('excess', 'another_excess')

你也可以将一个字典或一个元组解包到一个函数的参数中:def foo(a,b,c,**args):

print "a=%s" % (a,)

print "b=%s" % (b,)

print "c=%s" % (c,)

print "args=%s" % (args,)

argdict = dict(a="testa", b="testb", c="testc", excessarg="string")

foo(**argdict)

输出:a=testa

b=testb

c=testc

args={'excessarg': 'string'}

和def foo(a,b,c,*args):

print "a=%s" % (a,)

print "b=%s" % (b,)

print "c=%s" % (c,)

print "args=%s" % (args,)

argtuple = ("testa","testb","testc","excess")

foo(*argtuple)

输出:a=testa

b=testb

c=testc

args=('excess',)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值