zoukankan      html  css  js  c++  java
  • python

    转自:http://blog.csdn.net/love1code/article/details/47276683

    python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。

    python的del不同于C的free和C++的delete。

    由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。

    if __name__=='__main__':
        a=1       # 对象 1 被 变量a引用,对象1的引用计数器为1
        b=a       # 对象1 被变量b引用,对象1的引用计数器加1
        c=a       #1对象1 被变量c引用,对象1的引用计数器加1
        del a     #删除变量a,解除a对1的引用
        del b     #删除变量b,解除b对1的引用
        print(c)  #最终变量c仍然引用1

    del删除的是变量,而不是数据。

    另外。关于list。

    if __name__=='__main__':
        li=[1,2,3,4,5]  #列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4] 
        first=li[0]     #拷贝列表,也不会有数据对象的复制,而是创建新的变量引用
        del li[0]
        print(li)      #输出[2, 3, 4, 5]
        print(first)   #输出 1
  • 相关阅读:
    jQuery
    数据库的并发操作
    Python之禅
    pymysql模块初见
    数据库之表查询
    实体与实体之间的联系
    数据库初识
    进程池 协程 与I/O模型
    GIL全局解释锁.死锁与递归锁
    进程通信与线程初识
  • 原文地址:https://www.cnblogs.com/blitheG/p/7998959.html
Copyright © 2011-2022 走看看