学习方法
-
练习上课内容
-
第一遍你先按照老师的视频还有源码去敲一遍
-
第二遍脱离老师的代码和视频再敲一遍
-
第三遍希望大家根据自己的理解去敲一遍
-
-
把上课的内容以文章的形式发表到博客上
- 梳理知识,加强理解
- 复习
- 有意识的去做一个博主,吸收粉丝
-
课后作业
内存
- 行动或思考时作为目标的人或事物
- 存的是对象
- id
- 类型(type)
- 值(value)
import copy
#exp1
a = ['abc','efg','123']
b = ['abc','efg','123']
print(id(a),id(b))
##总结 这里的a表示id 而['abc','efg','123']则是value 类型这是value对应的数据类型 对象名不同则对应的内存地址不同
#exp2
c = ['abc','efg','123']
d = c
print(id(c),id(d))
##总结 这里d相当于引用了c的内存地址
#exp3
e = ['abc','efg','123']
f = ['abc','efg','123',e]
print(id(e),id(f),id(f[3]))
##总结 这里f对象中存了不仅只有数据 也存了e对象 也就是内存地址 而f[3]则刚好对应的式f内的e
#ex4
g = copy.deepcopy(f)
h = copy.copy(f)
## 总结 如上是两种拷贝的方式 copy.deepcopy(f) 是深度拷贝 内存地址会变 而copy.copy(f)则是浅拷贝 其中包含所包含的对象内存地址不变
print(g,h)
print(id(g),id(h),id(g[3]),id(h[3]))
垃圾回收机制
一、引用计数
Python垃圾回收主要以引用计数为主,分代回收为辅。引用计数法的原理是每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象,当发生以下四种情况的时候,该对象的引用计数器**+1**
- 对象被创建 a=14
- 对象被引用 b=a
- 对象被作为参数,传到函数中 func(a)
- 对象作为一个元素,存储在容器中 List={a,”a”,”b”,2}
与上述情况相对应,当发生以下四种情况时,该对象的引用计数器**-1**
- 当该对象的别名被显式销毁时 del a
- 当该对象的引别名被赋予新的对象, a=26
- 一个对象离开它的作用域,例如 func函数执行完毕时,函数里面的局部变量的引用计数器就会减一(但是全局变量不会)
- 将该元素从容器中删除时,或者容器被销毁时。
##参考下生命周期 比较好理解 贴个链接
python对象生命周期
作业
内存和垃圾回收机制两块,以博客的形式写出来发表
ps:lz报了个py的学习班、感觉像是打广告、、不过也是为了学习吧~