zoukankan      html  css  js  c++  java
  • python内存管理

    摘要:python有如下特点:
    • 变量无须事先声明
    • 变量无须指定类型
    • 程序员不用关心内存管理
    • 变量名会被回收
    • del语句能够直接释放资源
     
    Python中,对象的类型和内存占用都是运行时确定的,在赋值时,解释器会根据语法和右侧的操作数来决定新对象的类型,在对象创建后,一个该对象的应用会被赋值给左侧的变量。
     
    1.Python采用引用计数的计数来追踪内存中的对象
    增加引用计数例子:
    #创建一个浮点型对象并将其引用赋值给x, 此时引用计数为1
    x=3.14
    #创建了一个指向同一对象的别名y,并没有为y创建一个新对象,此时引用计数变为2
    y=x 
    增加引用方法:
    • 对象被创建:x=3.14
    • 另外的别名被创建: y=x
    • 作为参数传递给函数(本地引用): foo(x)
    • 作为容器对象中的一个元素: mylsit=[12,x,4]
    减少引用计数例子:
    foo='xyz' #引用计数为1
    bar=foo   #引用计数为2
    foo=123   #引用计数为1
    减少引用方法:
    • 一个本地引用离开其作用范围,比如一个函数运行结束时
    • 对象别名被显示销毁:del y
    • 对象的一个别名被赋值给其他对象
    • 对象被从一个容器对象中移除:mylist.remove(x)
    • 容器对象本身被销毁: del mylist
     
    2.垃圾收集
    不再使用的内存会被垃圾收集的机制释放
  • 相关阅读:
    if else配对问题
    未完
    c,c++,java格式总结
    c++笔记
    Vaadin
    J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册)
    scala手动编译运行
    jframe去掉窗体
    jdk1.7
    vbox共享文件 挂载
  • 原文地址:https://www.cnblogs.com/quxikun/p/7977224.html
Copyright © 2011-2022 走看看