Python 注意问题
多变量同时赋值问题
1 class Temp: 2 def __init__(self, x): 3 self.val = x 4 5 a = Temp(1) 6 7 a.val, a = 1, 2 # 正确 8 a, a.val = 1, 2 # 错误 AttributeError: 'int' object has no attribute 'val'
分析:
此种赋值常用于交换变量如 a , b = b , a,等号右侧的值会同时赋给等号左侧的变量,不会发生等号左侧的变量影响等号右侧的变量,但是,上面代码反映的问题是等号左侧被赋值的过程是有顺序的,是从左到右的。