Python的内存管理

来源:互联网 发布:json与xml的区别 编辑:程序博客网 时间:2024/05/27 10:43
# -*- coding: utf-8 -*-# 对象与引用# 1为对象,a是一个引用,引用a指向对象1a = 1# 创建多个等于1的引用b = 1if __name__ == '__main__':    # 打印对象的内存地址    print id(a)    print hex(id(a))        # 整数和短小的字符,python会缓存这些对象,以便重复使用    print id(b)        # 用is判断两个引用所指向的对象是否相同    print (a is b)    x = 'hello'    y = 'hello'    print (x is y)    print (a is x)    m = 'very good morning abcdefghijkl'    n = 'very good morning abcdefghijkl'    print (m is n)        # 查看对象的引用计数    from sys import getrefcount    a = [1, 2, 3]    print getrefcount(a)    b = a    print getrefcount(b)        #     import gc    gc.collect()    print gc.get_threshold()        ####    a = []    b = [a]    a.append(b)    print getrefcount(a)    print getrefcount(b)    del a    del b        x = [1, 2, 3]    y = [x, dict(key1=x)]    z = [y, (x, y)]    import objgraph    objgraph.show_refs([z], filename='ref_topo.png')


参考:http://www.cnblogs.com/vamei/p/3232088.html

0 0
原创粉丝点击