目标
- 补充基础阶段相关内容
- 回顾基础系列之数据类型
第一部分
有了前一部分的铺垫,相信大家已经明白变量名只是对内存空间的映射,那么
- 共享变量是怎么回事?
- 深浅拷贝又是是什么?
1. 赋值与深浅拷贝
🤔 思考如下代码,a、b、c、x
四者在x = x + [3, 4]
前后的地址是如何变化的?
a = 1 |
打印结果如下
a: 4323184656 |
- 尽量用
+=
,-=
之类复合符号的,因为无需开辟新的,+=会自动调用 extend 方法进行合并运算, 共享引用; - 【不可变对象】:如打印结果中的
开始和结束
的a
,地址是不同的,重新申请地址; - 【可变对象】:无需重新申请地址,但区域可长可短;
2. 浅拷贝
不管多么复杂的数据结构,浅拷贝都只会 copy 一层;如需完整拷贝,请参考深拷贝,还记得这个图么?
3. 深拷贝
深拷贝——即 python 的 copy 模块提供的另一个 deepcopy 方法。深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,在这个过程中我们对这两个变量中的一个进行任意修改都不会影响其他变量。
第二部分
1. 打印 Print
日常调试,还是离不开打印的,大概了解下如何打印,有两种:
1. % |
举几个简单的例子
print(" x: %s, y: %s" % (id(x), id(y))) |
表格:
%s 字符串 (采用str()的显示) |