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()函数

Python如何通过变量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
  • asp之家 网络编程 m.aspxhome.com