当前位置: 首页 > 面试题库 >

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

陈誉
2023-03-14
问题内容

*在Python中像在C中一样具有特殊含义吗?我在Python Cookbook中看到了这样的函数:

def get(self, *a, **kw)

你能向我解释一下还是指出我在哪里可以找到答案(Google将*解释为通配符,因此我找不到令人满意的答案)。


问题答案:

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

范例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',)


 类似资料:
  • 问题内容: 运算符在Python中是什么意思,例如l或代码? 在解释器内部如何处理? 它会影响性能吗?是快还是慢? 什么时候有用,什么时候没有? 应该在函数声明中还是在调用中使用它? 问题答案: 单颗星将序列集合解压缩为位置参数,因此你可以执行以下操作: 这将打开元组的包装,使其实际执行为: 双星 只使用字典并因此命名参数来做同样的事情: 你还可以结合: 另请参见Python文档的4.7.4-解包

  • 我正在编写一个java项目,在这个项目中,我有Graph类和其他表示图形和点的类...(这对我的问题并不重要) 我编写了两个函数,用于打印特定的图形名称和其他用于图形的基本函数 我还编写了一个函数: 这个函数应该打印它的名字给出的图形中的所有节点! 之后,我们运行使用的测试,这些测试基本上在测试的预期输出(即给我们的)和实际输出(我写的代码的输出)之间进行比较。 jUnit总是告诉我函数的预期输出

  • 问题内容: 嗨,我遇到了以下代码 这到底是怎么回事?我不确定“&”在做什么。 问题答案: 回答 该符号是按位与运算符。与1一起使用时,基本上会屏蔽该值以提取最低位,换句话说,它将告诉您该值是偶数还是奇数。 有关Python运算符的更多信息 有关更多信息,请参见:http : //wiki.python.org/moin/BitwiseOperators 为什么检查奇数与偶数比较有效 编辑:添加此部

  • 问题内容: 操作数是什么意思,更具体地说是Python? 有人可以解释如何阅读此代码段吗? 问题答案: 更新的答案 在问题的上下文中,我们正在处理伪代码,但是从Python 3.8开始 ,它实际上是一个有效的运算符,它允许在表达式中分配变量: 有关更多详细信息,请参见PEP 572。 原始答案 您发现的是 伪代码 伪代码 是计算机程序或其他算法的工作原理的非正式高级描述。 实际上是赋值运算符。在P

  • 问题内容: 我今天在看一个css文件,发现以下规则集: 星号在 padding和 line-height中是什么意思? 谢谢。 问题答案: 这是“star property hack”,与“underscore hack.”相同。它在IE忽略的属性之前包括垃圾(*最多适用于IE 7,_最多适用于IE 6)。

  • 问题内容: 我知道出于文档目的注释中的含义,但除此之外又意味着什么?(我通常只会在Google上搜索,但结果中会显示每个非字母符号) 问题答案: 该符号表示Java注释。Java注释的作用是,它为变量,方法,类,接口或其他语言元素添加了特殊的属性。(可以在声明注释时进行配置)。向某事物添加注释时,程序的其他部分可以检查某事物是否具有注释。然后,它可以使用此信息来完成所需的任何工作。 让我举几个例子