赋值和参数传递有什么不同?

sam*_*mba 2 python variable-assignment

我可以在python中分配这样的序列:

a,b,c="ABC"
Run Code Online (Sandbox Code Playgroud)

但我无法将此序列作为参数传递给函数.即

def function2(a,b,c):
    print a
    print b
    print c
function2("ABC")
Run Code Online (Sandbox Code Playgroud)

上述声明引发了错误.

任何人都可以告诉我在python中传递赋值和参数之间的区别吗?

Ign*_*ams 9

编译器在LHS上看到一个以逗号分隔的列表,并发出字节码以便为您迭代RHS.通过函数调用,它会看到一个值,因此将其作为单个参数发送.您需要告诉它明确地拆分序列:

>>> function2(*"ABC")
A
B
C
Run Code Online (Sandbox Code Playgroud)