【发布时间】:2016-06-03 07:15:27
【问题描述】:
x = func(*(xa,) + args)
y = func(*((xc,) + args))
其中args是一个数组,函数定义是:
def func(lamb, data):
# statements
我了解了*args,但我找不到这些行之间的确切区别。
【问题讨论】:
-
一组额外的括号。就是这样,执行没有区别,字节码是一样的:
dis.dis("func(*(xa,) + args)")给出的操作和dis.dis("func(*((xc,) + args))")完全一样 -
第一个使用
xa,第二个使用xc;) -
如果你试图调用的函数有两个参数并且你想传递两个参数,你为什么要使用
*args机制呢?你不想做func(xa, args)吗? -
我对 Python 还是很陌生。我不是在写,只是想了解一个源代码@TadhgMcDonald-Jensen
标签: python