一。变量,对象,引用:
1. 变量:
2. 对象:均包含了一个头部信息,有以下两部分内容
a.对象的数据类型,
b.引用计数器:纪录当前引用货指向该对象的数量,一旦计数器被清零,该对象的内存空间就会被回收。
3. 引用:关联变量和对象之间的指针,
a=3
二。共享引用,新创建对象:
1. a=3
b=a
a='spam'
a变了,b还等于3,因为b指向的对象没有发生变化,b的指针也没有变。
2. a=3
b=a
a=a+2
b是什么情况?
Python里给一个变量赋新值,并不会改变原有的对象,是重新创建一个对象,然后把新对象的指针指向变量,老对象的计数器会去除一个引用
三。共享应用,在原处修改对象:
1. L1=[2,3,4]
L2=L1
L1[0]=24
L1和L2均变为[24,3,4]
2. L1=[2,3,4]
L2=L1[:]
L1[0]=24
L1为[24,3,4]L2=[2,3,4],因为L1[:]为只拷贝对象,不会创建引用。
四。共享引用和相等:
1. ‘==’:判断两个对象的值是否一样
2. ‘is’ :判断两个对象的同一性,即两个变量是否指向了同一个对象