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,等号右侧的值会同时赋给等号左侧的变量,不会发生等号左侧的变量影响等号右侧的变量,但是,上面代码反映的问题是等号左侧被赋值的过程是有顺序的,是从左到右的。

posted @ 2019-07-13 15:05  北风卷地白草折  阅读(209)  评论(0编辑  收藏  举报