Python如何通过变量ID得到变量的值
作者:大马鱼哈 发布时间:2023-01-22 22:35:56
标签: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()函数
来源:https://blog.csdn.net/majian/article/details/109386757
0
投稿
猜你喜欢
- 由于XML本身的诸多优点,XML技术已被广泛的使用,目前的好多软件技术同XML紧密相关,比如微软的.net 平台对xml提供了强大的支持,提
- 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。几天
- 一个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例我以ACCESS库为例子,其实用SQL SERVER库也只要改一下链接库的语句
- 在你要导出数据字典的数据空中右键,新建查询,执行如下代码即可 代码如下:SELECT (case when a.colorder=1 th
- location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.hre
- 1 实验环境(1)服务端:本实验基于虚拟机win2008系统的WAMP环境进行,该环境相关配置过程参考文章《【语言环境】WAMP环境部署及优
- javascript中的数组对象捆绑了强大的方法因此它可以用很简短的代码实现强大的数组操作而这些功能要C或者c++实现的话可能需要花费几倍的
- 第一种,也是我最常用的,第一帧里加上这个比较灵活,想要自定义加入菜单,只要定义drMenu这个对象就可以了var drMenu&n
- php中-> 、=>、::、$this->四种符号在代码中很常见,使用很广泛。这篇文章主要介绍了php中-> 、=&
- 行业首页改版的缘故,为了让我们设计师可以更好的了解需求、了解我们的用户,和部门的用研童鞋一起讨论决定使用电话来进行用户访谈,以此来了解用户。
- XML的未来 现在你已经知道XML。确实,结构有点复杂,而且DTD有各种可以定义文档可以包含的内容的选项。但还不只这些。考虑一个数据交换对其
- PHP 过滤器PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。什么是 PHP 过滤器PHP 过滤器用于验证和过滤来自非安全
- 平时我们获取事件对象一般写法如下:function getEvent(event) { return e
- 引文之前将PHP反序列化的基础知识讲了一遍,不知道大家学习的怎么样了,今天给大家带来PHP反序列化的进阶知识:PHAR反序列化,也是之前本人
- 类中的七种语法说明-属性 -静态属性 -方法 -静态方法 -类常量 -构造函数 -析构函数<?php class Stud
- gzip 是什么东东呢?百科跟我们说gzip是GNU zip的缩写,它是一个 GNU 自由软件的文件压缩程序。…gzip 的基础是 DEFL
- 一、json_encode() 对变量进行JSON编码语法:json_encode($value[,$options=0])注意: 
- 这个我早就改好了一直没有放上来.现在发给大家用用注意这几个变量它们影响到提示框的效果代码:var rT=true;//允许图像过渡
- 1函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数