Python如何通过变量ID得到变量的值
作者:大马鱼哈 时间:2023-01-22 22:35:56
通过变量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()函数
来源:https://blog.csdn.net/majian/article/details/109386757
标签:Python,变量ID,变量值
0
投稿
猜你喜欢
设计良好网页的4项原则
2009-04-24 12:48:00
Git 的基本操作、开发流程、实用技巧总结(陈彦贝)
2022-05-10 03:03:35
GoLang中生成UUID唯一标识的实现
2024-05-22 10:19:54
解决node.js安装包失败的几种方法
2024-05-08 09:36:34
sql server 2005用户权限设置深入分析
2024-01-19 12:08:21
Python实现简易超市管理系统
2023-01-08 12:09:01
pandas DataFrame 行列索引及值的获取的方法
2022-03-24 06:14:11
python cookie反爬处理的实现
2021-10-16 23:33:17
python的简单web框架flask快速实现详解
2023-03-10 08:26:36
C# 如何调用python脚本
2023-11-26 19:06:47
python随机生成大小写字母数字混合密码(仅20行代码)
2021-04-03 23:28:47
Web开发人员常用速查手册 英文集合推荐
2023-03-27 22:22:03
Python+MediaPipe实现检测人脸功能详解
2021-05-05 15:34:17
sql server建表时设置ID字段自增的简单方法
2024-01-17 14:11:13
JavaScript正则表达式之multiline属性的应用
2024-05-11 10:24:56
《设计网事》前言
2009-07-15 17:19:00
标准的、语义的、Unobtrusive的页签tab切换
2007-11-03 13:58:00
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2022-08-19 04:49:55
k8s容器互联flannel vxlan通信原理
2024-05-08 10:46:01
JavaScript监听触摸事件代码实例
2023-08-20 19:12:54