• python 引用计数


    转载:NeilLee(有修改)

     

    一、概述

    要保持追踪内存中的对象,Python使用了引用计数这一简单的技术。

    sys.getrefcount(a)可以查看a对象的引用计数,但是比正常计数大1,因为调用函数的时候传入a,这会让a的引用计数+1

    二、引用计数的增减

    2.1 增加引用计数

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

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

    • 对象被创建:x = 3.14
    • 另外的别名被创建:y = x
    • 对象被作为参数传递给函数(新的本地引用):foobar(x)
    • 对象成为容器对象的一个元素:myList = [123, x, 'xyz']

    2.2 减少引用计数

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

    • 一个本地引用离开了其作用范围。如fooc()函数结束时,func函数中的局部变量(全局变量不会)
    • 对象的别名被显式销毁:del y
    • 对象的一个别名被赋值给其他对象:x = 123
    • 对象被从一个窗口对象中移除:myList.remove(x)
    • 窗口对象本身被销毁:del myList

    2.3 del语句

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

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

    • 从现在的名称空间中删除y
    • x的引用计数减1
  • 相关阅读:
    [BZOJ 1698] 荷叶池塘
    [BZOJ 3132] 上帝造题的七分钟
    [JLOI2011] 飞行路线
    [Codeforces Round49F] Session in BSU
    [BZOJ 3036] 绿豆蛙的归宿
    CRC-16校验原理
    ubuntu下mysql的安装与配置
    【OpenCV】边缘检测:Sobel、拉普拉斯算子
    我对sobel算子的理解
    梯度算子(普通的+Robert + sobel + Laplace)
  • 原文地址:https://www.cnblogs.com/fuqia/p/9074451.html
Copyright © 2020-2023  润新知