Python 变量是引用式变量

引用变量

Python 中赋值语句右边先执行

In [1]: a = [1, 2, 3]

In [2]: b = a

In [3]: a.append(4)

In [4]: b
Out[4]: [1, 2, 3, 4]

a = [1 ,2, 3], 首先生成右边的列表对象,然后再给这个列表对象贴上一个a标签,(先生成对象再赋值)

b = a, 给这个对象再贴上一个b标签,这个列表有两个标签(也可以叫别名),a和b 指向同一个对象

is

在Python中我们用is 语句来判断两个变量名是否为同一对象(也叫同一性)

In [5]: a is b
Out[5]: True

==

用 == 来判断两个变量所指向的对象 值是否一样(也叫相等性)


In [6]: c = list(b)

In [7]: c
Out[7]: [1, 2, 3, 4]

In [8]: c == b
Out[8]: True

In [9]: c is b
Out[9]: False

c和b 值相同,但是指向不同的对象,对象创建,会在内存中占用一个地址,is 比较的就是这个地址

可以用id()来返回这个地址的整数值

In [12]: id(a)
Out[12]: 140485088411328

In [13]: id(b)
Out[13]: 140485088411328

In [14]: id(c)
Out[14]: 140485090606080

a和b指向同一对象,id值一样

c为另一对象