我正在尝试了解 Python *args 和 **kwargs 的操作。让我们考虑一个接受 4 个参数的函数。我们可以使用 *x 将列表 x 作为参数传递给函数
def foo(a,b,c,d):
print a,b,c,d
x=[1,2,3,4]
foo(x)
#TypeError: foo() takes exactly 4 arguments (1 given)
foo(*x)
#1 2 3 4 # works fine
print "%d %d %d %d" %(*x)
#SyntaxError: invalid syntax
如果我猜对了,以防 foo() *x 解包值...那么为什么会出现错误print "%d %d %d %d" %(*x)
?
注意-我对如何在一行中打印列表不感兴趣,但只是好奇为什么print "%d %d %d %d" %(*x)
不起作用。