python笔记007--内存管理

来源:互联网 发布:商家给淘宝消费积分 编辑:程序博客网 时间:2024/05/28 19:24
  • 变量无须事先声明
  • 变量无须指定类型
  • 程序员不用关心内存管理
  • 变量名会被“回收”
  • del语句能够直接释放资源
一、变量定义
变量在第一次被赋值时自动声明,变量只有在被创建和赋值后才能被使用

、动态类型
类型无需声明
创建(赋值)时,解释器会根据语法和右侧的操作数来决定新对象的类型

三、内存分配
python解释器承担了内存管理的复杂任务

四、引用计数
引用计数器:一个内部跟踪变量
引用计数:每个对象各有多少个引用
1、增加引用计数
当对象被创建并(将其引用)赋值给变量时,该对象的引用计数就被置为1.
增加途径:
①对象被创建                                                         x = 3.14
②另外的别名被创建                                             y = x
③被作为参数传递给函数(新的本地引用)     foobar(x)
④成为容器对象的一个元素                                 myList = [123,x,'xyz']
2、减少引用计数
当对象的引用被销毁时,引用计数会减少。
减少途径:
①一个本地引用离开的其作用范围                      foobar()函数结束时
②对象的别名被显式销毁  del y          # or del x
③对象的一个别名被赋值给其他对象  x = 123
④对象被从一个窗口对象中移除  myList.remove(x)
⑤窗口对象本身被销毁  del myList    # or goes out-of-scope
3、del语句
del语句会删除对象的一个引用
语法:del obj1[,obj2[,...objN] ]

五、垃圾收集
不再使用的内存会被垃圾收集机制释放。
垃圾收集器是一块独立代码。是一个引用计数器和一个循环垃圾收集器。
原创粉丝点击