栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

范例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 argsfoo(a="testa", d="excess", c="testc", b="testb", k="another_excess")

如你在上面的示例中所见,函数

a, b, c
签名中仅包含参数
foo
。由于d和k不存在,因此将它们放入
args
字典。该程序的输出为:

a = testab = testbc = 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 argsfoo("testa", "testb", "testc", "excess", "another_excess")

在这里,由于我们正在测试位置参数,因此多余的参数必须在最后,并将

*args
它们打包成一个元组,因此该程序的输出为:

a = testab = testbc = 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=testab=testbc=testcargs={'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=testab=testbc=testcargs=('excess',)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号