为什么在具有相同变量的语句中使用多个等号?

时间:2017-11-05 01:27:30

标签: python

我遇到了使用具有相同变量的语句的示例代码:

event_type=event_type=str(payload_json['event'])

我试过了:

a=b=c=d=10

并且所有四个变量(a,b,c和d)都变为10.喜欢:

a=10
b=10
c=10
d=10

这是一个亚马逊代码示例,所以我怀疑我对Python的理解而不是代码示例。该页面可在此处找到: AWS Kinesis example

这里可能发生什么?一些Python伏都教我不明白或只是一个错字?

1 个答案:

答案 0 :(得分:2)

a = a = b 总是等同于python中的a = b。在您描述时使用带有多个等号的语句称为chained assignment,并且在许多编程语言中都受支持。有些语言会在检测到相同变量(C)的链式赋值时引发错误,但其他语言会忽略它(python,javascript)。

改变这种行为并不容易实现,因为赋值操作符的行为内置于python而没有提供修改钩子(参见:Is it possible to overload Python assignment?)。因此,我认为可以安全地假设这是一个你发现的(无害的)拼写错误。