Python如何获得变量的id得到变量的值

Admin 2022-09-02 群英技术资讯 412 次浏览

这篇文章给大家分享的是Python如何获得变量的id得到变量的值。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。


通过变量ID得到变量的值

已知获得变量的id用函数id(),那么它的反函数是什么?

答案是:PyObj_FromPtr,据此,写了一个函数di(),可以根据 id()的结果获得变量的值

from _ctypes import PyObj_FromPtr
 
def di(obj_id):
    """ 通过变量ID 得到变量的值"""
    return PyObj_FromPtr(obj_id)
 
if __name__ == "__main__":
    i = {"j":99,"name":"jack"}
    var_id = id(i)
    print(var_id)
    print (di(var_id))

这么做的意义何在?

答案是Python 脚本解释里有用, 如果要写一个Python脚本解释器, 得到一行字符串 : "i = j" , 正常情况下你分割字符串得到 i = "j" ,  可如果 已知  j=10, 如何让 i = 10 呢 ?  经过一系列id()  di() 大法, 可以实现这个小目标. 

第二种实现的方法代码类似,参考 https://www.jb51.net/article/248147.htm

import ctypes
 
value='hello world' #定义一个字符串变量
address=id(value) #获取value的地址,赋给address
get_value=ctypes.cast(address, ctypes.py_object).value #读取地址中的变量
print(get_value)

如何查看一个变量的id

如有错误欢迎指正

用id()函数


感谢各位的阅读,以上就是“Python如何获得变量的id得到变量的值”的内容了,经过本文的学习后,相信大家对Python如何获得变量的id得到变量的值都有更深刻的体会了吧。这里是群英网络,小编将为大家推送更多相关知识点的文章,欢迎关注! 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服