今天上课的时候,老师讲了好多重要的知识点,说是到时候面试的时候可能会问到,所以我就上传了
首先,先说一下内存管理:
1.Python是自动管理内存的。在程序运行期间会产生很多的对象,对象是占用空间内存的,如果不再使用的对象没有及时得到释放,可能导致内存占用过高,程序卡顿或者程序崩溃的情况,这就是为什么要管理内存的原因。
2.通过引用计数管理内存,当一个对象被创建的时候,引用计数为1
当对象被其他变量引用时,引用计数+1;
当结束该对象的引用时,引用计数-1;
当一个对象的引用计数为0时,该对象会被系统在合适的时候释放掉。
其次,老师还讲了关于循环引用的知识点:
1. 现象:在对象A中引用了对象B,在对象B中引用了对象A
2. 结果:循环引用会导致对象无法及时释放,占用内存
3. 原因:对象A引用对象B,对象A想要释放,首先对象B得先释放;同理,对象B引用对象A,对象B想要释放,那对象A也得先释 放。
4.解决方案:在某个对象使用完毕之后,利用del()函数,手动删除一次引用
这些东西重在理解,不需要刻意的去背,希望能够帮助到你们!