1.可变对象和不可变对象:
- 不可变对象:数字(int,float, double)、字符串、元组(tuple)、function等
- 可变对象:字典(dict)、列表(list)、集合(set)、程序自定义的对象
2.赋值:实质就是传引用。
对于不可变对象:b=a ,a改变后,b不改变,因为a的值为不可变对象,a的值改变后,会新开辟一个地址,存放a的新值,a指向这个新值。
对于可变对象:b=a,a改变,b也改变。
3.浅拷贝:只拷贝父对象,不拷贝子对象。b=copy.copy(a),改变a的父对象,b不变,改变a的子对象,b跟着改变。
import copy a=[1,2,3,[1,2]] b=copy.copy(a) a[0]=2 a[3].append(3) print(a) print(b)
[2, 2, 3, [1, 2, 3]]
[1, 2, 3, [1, 2, 3]]4.深拷贝:父对象和子对象都拷贝,a和b随意怎么改变互不影响。