我遇到了使用具有相同变量的语句的示例代码:
event_type=event_type=str(payload_json['event'])
Run Code Online (Sandbox Code Playgroud)
我试过了:
a=b=c=d=10
Run Code Online (Sandbox Code Playgroud)
并且所有四个变量(a,b,c和d)都变为10.类似:
a=10
b=10
c=10
d=10
Run Code Online (Sandbox Code Playgroud)
这是一个亚马逊代码示例,所以我怀疑我对Python的理解而不是代码示例.该页面可在此处找到: AWS Kinesis示例
这可能发生什么?一些Python伏都教我不明白或只是一个错字?
a = a = b始终相当于python 中的a = b。正如您所描述的,使用具有多个等号的语句称为链式赋值,并且许多编程语言都支持。有些语言在检测到同一变量的链式赋值 (C) 时会引发错误,但其他语言则简单地忽略它(python、javascript)。
改变这种行为是一个坏主意,而且不容易实现,因为赋值运算符的行为内置于 python 中,没有提供修改钩子(请参阅:是否可以重载 Python 赋值?)。因此,我认为可以安全地假设这是您发现的(无害的)拼写错误。