内存管理和包的使用

内存管理

Python内存管理原理

内存中的两个特殊区域:
栈:栈中的内存系统自动管理(内存的开辟和内存的释放) --- 作用域结束,内存就释放
堆:堆中的内存都需要写程序去开辟和释放的(Python中这个过程也已经自动化了)

原理:堆中的数据到底是什么时候释放的?
看一个值有几个引用,当一个值没有引用的时候,对象对应的内存空间就会被释放
(引用计数机制)
0+1-1

引用:存储对象地址的变量

class Person:
    def __init__(self, name):
        self.name = name

    def run(self):
        print('%s跑' % self.name)


if __name__ == '__main__':
    p = Person('p')

    # 删除对象唯一的引用,对象就会被销毁
    del p
    # p.run()

    # 将对象作为值赋给其它变量,对象的引用+1
    p1 = Person('p1')
    p2 = p1
    del p2
    p1.run()
    p1 = 'a'

    # 将对象添加到容器中,对象的引用会+1
    p3 = Person('P3')
    lists = [p3,100]
    del p3

    lists[0].run()

    # del lists
    # del lists[0]
    lists[0] = None

包的使用

封装:
对一个功能的封装 --> 函数
对多个功能的封装 --> 模块or类
对多个数据进行封装 --> 类or字典
对多个类进行封装 --> 模块
对多个模块进行封装 --> 包(文件夹,含:init文件)


# 导入某个包中的某个模块
from package1 import math
# 导入某个包中的某个模块的某个函数
from package1.file import write

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容