国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python引用計數(shù)操作示例

2020-02-15 22:48:37
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了Python引用計數(shù)操作。分享給大家供大家參考,具體如下:

為了簡化內存管理,Python通過引用計數(shù)機制實現(xiàn)了自動的垃圾回收功能,Python中的每個對象都有一個引用計數(shù),用來計數(shù)該對象在不同場所分別被引用了多少次。每當引用一次Python對象,相應的引用計數(shù)就增1,每當消毀一次Python對象,則相應的引用就減1,只有當引用計數(shù)為零時,才真正從內存中刪除Python對象。

import ctypesdef get_ref(obj):  """ returns a c_size_t, which is the refcount of obj """  return ctypes.c_size_t.from_address(id(obj))l = [1,2,3,4]l2 =ll_ref = get_ref(l)print l_refdel lprint l_refdel l2print l_refanother_list = [0, 0, 7]a_ref = get_ref(another_list)print a_ref

輸出:

c_ulong(2L)
c_ulong(1L)
c_ulong(0L)
c_ulong(1L)

運行結果如下圖所示:

另外python編譯成字節(jié)碼的模塊為 dis

import dis # bytecode disassembler moduledef time_2(x):  return 2 * xdis.dis(time_2)print "*"*20dis.dis(get_ref)

結合上述代碼,測試示例如下:

import ctypesimport dis # bytecode disassembler moduledef get_ref(obj):  """ returns a c_size_t, which is the refcount of obj """  return ctypes.c_size_t.from_address(id(obj))def time_2(x):  return 2 * xdis.dis(time_2)print "*"*20dis.dis(get_ref)

運行結果:

  7           0 LOAD_CONST               1 (2)
              3 LOAD_FAST                0 (x)
              6 BINARY_MULTIPLY    
              7 RETURN_VALUE       
********************
  5           0 LOAD_GLOBAL              0 (ctypes)
              3 LOAD_ATTR                1 (c_size_t)
              6 LOAD_ATTR                2 (from_address)
              9 LOAD_GLOBAL              3 (id)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵川县| 上杭县| 宁夏| 麻江县| 宁德市| 建始县| 将乐县| 神池县| 兴化市| 岳阳县| 东丰县| 中牟县| 吴川市| 宁陕县| 红河县| 囊谦县| 玉门市| 共和县| 蓬莱市| 长宁区| 西乌珠穆沁旗| 龙江县| 彩票| 博野县| 米易县| 新巴尔虎右旗| 新平| 渭南市| 抚宁县| 贺州市| 类乌齐县| 象山县| 南丹县| 庆安县| 清徐县| 泾阳县| 阿拉善左旗| 肇州县| 乌兰浩特市| 福州市| 汝阳县|