python 2 报错SyntaxError: only named arguments may follow *expression

def add(x,y,z):
    print(x+y+z)
a=[1,2]
add(*a,3)

  add(3,*a)

以上调用2种方法 add()函数python3都是ok的,都输出结果为6.

但是,在python 2 里面add(*a,3)会报错,只有写成add(3,*a)形式才ok。


python2

add(*a,3)报错如下:

SyntaxError: only named arguments may follow *expression

因为一个元组只表示一个参数;

但是元组加一个*,则可以把元组中的所有元素用一个参数一起传到脚本中;

且python2中带 *参数的元组 只能放在后面,否则有语法错误。

 

你可能感兴趣的:(Python)