如何在Python项目中引用计数

本篇文章为大家展示了如何在Python项目中引用计数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

importctypes
defget_ref(obj):
"""returnsac_size_t,whichistherefcountofobj"""
returnctypes.c_size_t.from_address(id(obj))
l=[1,2,3,4]
l2=l
l_ref=get_ref(l)
printl_ref
dell
printl_ref
dell2
printl_ref
another_list=[0,0,7]
a_ref=get_ref(another_list)
printa_ref

输出:

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

运行结果如下图所示:

如何在Python项目中引用计数

另外python编译成字节码的模块为 dis

importdis#bytecodedisassemblermodule
deftime_2(x):
return2*x
dis.dis(time_2)
print"*"*20
dis.dis(get_ref)

结合上述代码,测试示例如下:

importctypes
importdis#bytecodedisassemblermodule
defget_ref(obj):
"""returnsac_size_t,whichistherefcountofobj"""
returnctypes.c_size_t.from_address(id(obj))
deftime_2(x):
return2*x
dis.dis(time_2)
print"*"*20
dis.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) 12 LOAD_FAST 0 (obj) 15 CALL_FUNCTION 1 18 CALL_FUNCTION 1 21 RETURN_VALUE

上述内容就是如何在Python项目中引用计数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-04-08 13:37:41
收藏
分享
海报
0 条评论
172
上一篇:使用D3.js怎么构建一个实时图形 下一篇:Python中多继承的原理是什么
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码