脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python如何通过地址获取变量

Python如何通过地址获取变量

2023-01-28 13:58qq_2579440213 Python

这篇文章主要介绍了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

Python如何通过地址获取变量

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

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

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

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

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

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

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

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

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

Python如何通过地址获取变量

Python如何通过地址获取变量

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_33474442/article/details/85069493

延伸 · 阅读

精彩推荐
  • PythonPython的装饰器模式与面向切面编程详解

    Python的装饰器模式与面向切面编程详解

    这篇文章主要介绍了Python的装饰器模式与面向切面编程详解,概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能,本文详细了装饰器模式的方方面...

    Python教程网4402020-07-16
  • Python使用Python对MySQL数据操作

    使用Python对MySQL数据操作

    本文介绍Python3使用PyMySQL连接数据库,并实现简单的增删改查。具有很好的参考价值。下面跟着小编一起来看下吧...

    骑着螞蟻流浪4532020-09-28
  • Pythonpython查看微信好友是否删除自己

    python查看微信好友是否删除自己

    这篇文章主要为大家详细介绍了python查看微信好友是否删除自己,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    zyf_andy2712020-09-15
  • Pythonpython3 使用函数求两个数的和与差

    python3 使用函数求两个数的和与差

    这篇文章主要介绍了python3 使用函数求两个数的和与差,具有很好的参考价值,希望对大家有所帮助。...

    宇宙无敌天下第一帅10452021-11-09
  • PythonPython映射类型之dict详解

    Python映射类型之dict详解

    这篇文章主要为大家详细介绍了Python映射类型之dict,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你...

    安澜仙王11982022-11-02
  • PythonDjango后端分离 使用element-ui文件上传方式

    Django后端分离 使用element-ui文件上传方式

    这篇文章主要介绍了Django后端分离 使用element-ui文件上传方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    PythonNew_Mr.Wang7902020-07-13
  • PythonPython实现二维有序数组查找的方法

    Python实现二维有序数组查找的方法

    这篇文章主要介绍了Python实现二维有序数组查找的方法,结合实例形式分析了Python二维有序数组的查找思路及具体实现技巧,需要的朋友可以参考下 ...

    阿涵-_-3372020-08-21
  • Python聊聊Python中关于a=[[]]*3的反思

    聊聊Python中关于a=[[]]*3的反思

    这篇文章主要介绍了Python中关于a=[[]]*3的反思,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    zhongnanshu12282021-11-21