最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python的内存是如何管理的?

    正文概述    2020-04-18   224

    python的内存是如何管理的?

    初学python的小伙伴一定会有这样的困惑,python中是如何进行内存管理的?如何进行垃圾清理的?本篇文章说一下这个问题,希望对学习python的小伙伴有帮助。

    首先就不得不提到Python解释器在何种情况下会释放变量的内存。Python引用了内存计数这一简单的计数来控制。

    下面是引用计数的知识:

    1) 增加引用计数 当对象被创建并(将其引用)赋值给变量时,该对象的引用计数被设置为1。

    对象的引用计数增加的情况:

    对象被创建:x = 3.14

    另外的别名被创建:y = x

    被作为参数传递给函数(新的本地引用):foobar(x)

    成为容器对象的一个元素:myList = [123, x, 'xyz']

    2) 减少引用计数 对象的引用计数减少的情况:

    一个本地引用离开了其作用范围。如foobar()函数结束时

    对象的别名被显式销毁:del y

    对象的一个别名被赋值给其他对象:x = 123

    对象被从一个窗口对象中移除:myList.remove(x)

    窗口对象本身被销毁:del myList

    (更多学习内容,请点击python学习网

    3) del语句 Del语句会删除对象的一个引用,它的语法如下:del obj[, obj2[, ...objN]]

    例如,在上例中执行del y会产生两个结果:

    从现在的名称空间中删除y

    x的引用计数减1

    下面我们来试验一下

    import sys
     
    x = 3.14
    print("原始引用值:", sys.getrefcount(x))
    y = x
    print("被y引用后:", sys.getrefcount(x))
     
    x = 4.0
    print("重新赋值后:", sys.getrefcount(x))
     
    del y
    print("删除y引用后:", sys.getrefcount(x))
    原始引用值: 3
    被y引用后: 4
    重新赋值后: 3
    删除y引用后: 3

    当一个变量的引用计数为0的时候,就会被解释器回收。当然在交互模式下,内存不会马上释放,重新启动解释器就会释放了。


    起源地下载网 » python的内存是如何管理的?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元