#!/usr/bin/python3
import weakref
import sys
class Data(object):
def __init__(self, value, owner):
self.value = value
# 声明弱引用,owner为Node类本身
self.owner = weakref.ref(owner)
# 通过函数调用的方式访问引用对象
def __str__(self):
return "%s's data, value is %s" % (self.owner(), self.value)
def __del__(self):
print('in_data.__del__')
class Node(object):
def __init__(self, value):
# 把类本身,也当做参数传入Data类中
self.data = Data(value, self)
# 自定义对象名,容易辨认
def __str__(self):
return 'Node'
def __del__(self):
print('in_node.__del__')
if __name__ == '__main__':
node = Node(100)
print(node.data)
# 打印node对象的引用计数
print(sys.getrefcount(node) - 1)
# 当删除node对象时候,Data实例对象在引用计算为0也相应释放
del node
input('del done >>>>>') 相关推荐:
PHP管理内存函数 memory_get_usage()使用介绍_PHP教程
以上就是python在循环引用中如何管理内存的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于python在循环引用中如何管理内存的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did84321