欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

Python如何通过地址获取变量

时间:2023-01-23 08:24:52|栏目:Python代码|点击:

通过地址获取变量

类似于C/C++中令一个指针指向一个变量的地址,通过解引用可以得到变量的值。

利用ctypes模块在Python中实现类似的功能:

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

得到输出:

hello world

python的变量是什么?

变量皆指针的简单理解

一句话:

万物皆对象,变量皆指针

这里简单介绍一下指针是什么:

指针起源自c语言,在c语言中,每一块内存(或者是每一段)都存在着一个单独的变量用于标识这一坨内存,我们可以通过申请一个这样的变量去指向一块内存,自然也可以改变一块内存所属的这个变量,这个变量又叫地址也叫指针。

在c语言中,申请变量a

需要标识变量的类型,因此我们在做完这个申请操作之后,相当于同时申请了一个int(整数)大小的内存和一个这块内存的地址(&a)

*****而在python中申请变量并不需要单独表明申请变量的类型而是直接赋值就行了。

这就是python所独有的消除指针概念的方法——直接把变量全换成指针

这就有点像打不过就加入:

因此在python中通过变量申请内存空间,本质上是申请了一个地址,这个地址告诉电脑从那一大块的内存哪儿开始存东西

所以大家很容易发现一个有趣的现象,python常见的就是三种类型的变量,而他们的大小上限几乎就是一样大的:)

因为相对于c语言来说,申请变量本身就限制了变量的最大大小(有叫做内存管理),而python给你开了个门(申请了个开头的地址)你想往里塞多少都行(理论上)

但是其实也是有上限的(为了放置一个死循环在一个变量里就把你整块内存条炸掉)

我们可以通过sys模块的maxsize函数来看看支持的最大整数值:

 

上一篇:Python中22个万用公式的小结

栏    目:Python代码

下一篇:Django的URLconf中使用缺省视图参数的方法

本文标题:Python如何通过地址获取变量

本文地址:http://www.codeinn.net/misctech/224241.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有