一、学习方法
1、练习课上内容
- 第一遍,先按照老师的视频和源代码去敲一遍;
- 第二遍,脱离老师和视频再敲一遍;
- 第三遍,根据自己的理解再敲一遍。
【个人要求:最起码敲五遍以上,确保自己能快速且明白的敲出上课时所讲解的内容】
2、上课内容以文章的形式发博客
- 梳理知识,加强理解;
- 可用作复习;
- 可作为自身的简历。
3、课后作业要求
- 完成上述一、二之后再完成作业否则作业无意义。
二、内存
- 定义:行动或思考时作为目标的人或事物。
- 存的是对象
- id
- 类型(type)
- 值(value)
1、id解释
- a = [1,2,3]
b = [1,2,3]
其中a、b的id不一样,验证方式:通过pycharm,输入print(id(a),id(b))运行之后便能得到a、b的id。 - a = 4
b = a
其中a、b的id一样,验证方式如上。 - a = 4
b = 4
a和b的id是一样的,因为4是int类型,int是一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符 - (8.5新增知识点) a = [4]
b = [4]
这个时候a和b的id是不一样的,因为[4]是一个列表类型 - a = [1,2,3]
b = [1,2,3,a]- 关于a = 1+2 b = 1+2 中a和b的id一样的问题,后期变量课程中会讲到 注意(8.5新增知识点)
2、 关于引用“copy”
deepcopy深层次拷贝,即复制对象的所有的层次,暂且认为完全拷贝。copy潜层次拷贝,例:a= copy.copy(b) 拷贝的对象为[1,2,3,a]
经过pychram验证结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/202008042057523.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTcxNzk5OA==,size_16,color_FFFFFF,t_70#pic_center)
可以得出,copy不能复制b的id,但能复制b的值,可以看出a与b的值是一样的。
三、垃圾回收机制
1、引用计数
-
python垃圾回主要以引用计数为主,分带回收为辅。引用计数法的原理是每一个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象,当发生以下四种情况的时候,该对象的引用计数器=1:
-
(1)、对象被创建;例:a = [1,2,3]
-
(2)、对象被引用;例:b = a
-
(3)、对象被作为参数,传到函数中;例:print(a)
-
(4)、对象作为一个元素,存储在容器中;例:c = [4,5,a]
- 与上述情况相对应,当发生以下四种情况是,该对象的引用计数器-1:
-
(1)、当该对象的别名被显示销毁时;例:del a
-
(2)、当该对象的引别名被赋予新的对象时;例:a =[1,2,3,4]
-
(3)、一个对象离开她的作用域;未详解,待自查;
-
(4)、将该元素从容器中删除时,或者容器被销毁时。