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
需要标识变量的类型,因此我们在做完这个申请操作之后,相当于同时申请了一个int(整数)大小的内存和一个这块内存的地址(&a)
*****而在python中申请变量并不需要单独表明申请变量的类型而是直接赋值就行了。
这就是python所独有的消除指针概念的方法——直接把变量全换成指针
这就有点像打不过就加入:
因此在python中通过变量申请内存空间,本质上是申请了一个地址,这个地址告诉电脑从那一大块的内存哪儿开始存东西
所以大家很容易发现一个有趣的现象,python常见的就是三种类型的变量,而他们的大小上限几乎就是一样大的:)
因为相对于c语言来说,申请变量本身就限制了变量的最大大小(有叫做内存管理),而python给你开了个门(申请了个开头的地址)你想往里塞多少都行(理论上)
但是其实也是有上限的(为了放置一个死循环在一个变量里就把你整块内存条炸掉)
我们可以通过sys模块的maxsize函数来看看支持的最大整数值:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python 动态生成变量名以及动态获取变量的变量名方法
前言 需求: 必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: arriage_list_0=[],第二个叫arriage_list_1=[]--..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,肯定是少不了动态去解析list名称.所以下面开始介绍方法. python 动态生成变量名 lo
-
python中查看变量内存地址的方法
本文实例讲述了python中查看变量内存地址的方法.分享给大家供大家参考.具体实现方法如下: 这里可以使用id >>> print id.__doc__ id(object) -> integer Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it's the object's memory address
-
对Python 获取类的成员变量及临时变量的方法详解
利用Python反射机制,从代码块中静态获取参数: co_argcount: 普通参数的总数,不包括参数和*参数. co_names: 所有的参数名(包括参数和*参数)和局部变量名的元组. co_varnames: 所有的局部变量名的元组. co_filename: 源代码所在的文件名. co_flags: 这是一个数值,每一个二进制位都包含了特定信息.较关注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,说明使用了*args参数:如果co_fl
-
Python如何通过地址获取变量
目录 通过地址获取变量 python的变量是什么? 变量皆指针的简单理解 通过地址获取变量 类似于C/C++中令一个指针指向一个变量的地址,通过解引用可以得到变量的值. 利用ctypes模块在Python中实现类似的功能: import ctypes value='hello world' #定义一个字符串变量 address=id(value) #获取value的地址,赋给address get_value=ctypes.cast(address, ctypes.py_object).val
-
python使用Flask框架获取用户IP地址的方法
本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法. python代码如下: from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route,
-
python在Windows8下获取本机ip地址的方法
本文实例讲述了python在Windows8下获取本机ip地址的方法.分享给大家供大家参考.具体实现方法如下: import socket hostname = socket.gethostname() IPinfo = socket.gethostbyname_ex(hostname) LocalIP = IPinfo[2][2] print LocalIP 希望本文所述对大家的Python程序设计有所帮助.
-
Python中实现输入超时及如何通过变量获取变量名
背景介绍 开发中遇到了一个需求:程序运行到某处时需要用户确认, 但不能一直傻等, 后面的程序不能被一直阻塞, 需要有个超时限制, 也就是这个程序如果在一段时间后还没有得到用户输入就执行默认操作. 解决思路 – 多线程法 我就想到了用多线程的方式, 开启一个子线程用stdin(比如python的input函数)获取用户输入, 主线程里设置线程启动和超时. 创建线程 Python中使用多线程很方便, threading.Threaded(函数, 参数表)然后thread.start就好了. 只是有一
-
Python 通过正则表达式快速获取电影的下载地址
在爬取网页信息时,如果在HTML代码中通过获取标签的方式来提取电影的下载地址时,不仅要编写比较多的代码,还需要不断的确认每一层的标签是否正确,这样的操作无疑是烦琐的.如下图所示.那么通过什么方式既可以减少代码量,又可以很简单的提取指定标签的内容呢?本文将实现通过正则表达式快速获取电影的下载地址.如果对正则表达式不熟悉的读者,点击 此处 学习正则表达式. 在爬取网页信息的任务中,可以使用正则表达式的方式快速的提取某个标签内的指定信息,以爬取电影的下载地址为例.本案例需要注意编码格式的问题,单击鼠标
-
Python利用psutil实现获取硬件,网络和进程信息
目录 楔子 CPU 相关 内存相关 磁盘相关 网络相关 进程管理 进程管理操作 楔子 Python 有一个第三方模块叫 psutil,专门用来获取操作系统以及硬件相关的信息,比如:CPU.磁盘.网络.内存等等.下面来看一下它的用法,不过在使用之前需要先安装,直接 pip install psutil 即可. CPU 相关 获取 CPU 的逻辑核心数量 import psutil print(psutil.cpu_count()) # 12 # 或者使用 multiprocessing impo
-
详解Python 中的命名空间、变量和范围
目录 Python 中的命名空间.变量和范围 什么是命名空间? 变量和表达式 变量范围 Python 中的命名空间.变量和范围 什么是命名空间? 首先,我们需要感知python中的名称(标识符)是什么.众所周知,在python中,一切都是对象.名称帮助我们访问底层对象.例如,当我们做作业时 a = 1 , 1 是存储在内存中的对象,a 是我们与之关联的名称.我们可以通过内置函数获取某个对象的地址(在 RAM 中), ID() .让我们看看如何使用它. a = 1 打印('id(1)=',id(1
-
python使用wmi模块获取windows下的系统信息 监控系统
Python用WMI模块获取Windows系统的硬件信息:硬盘分区.使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息. 本文实例讲述了python使用wmi模块获取windows下的系统信息 监控系统 #!/usr/bin/env python # -*- coding: utf- -*- #http://www.cnblogs.com/liu-ke/ import wmi import os import sys import platform import
-
Python实现简单的获取图片爬虫功能示例
本文实例讲述了Python实现简单的获取图片爬虫功能.分享给大家供大家参考,具体如下: 简单Python爬虫,获得网页上的照片 #coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.comp
随机推荐
- yii框架redis结合php实现秒杀效果(实例代码)
- Apache shiro的简单介绍与使用教程(与spring整合使用)
- java发送内嵌图片邮件
- python双向链表实现实例代码
- Python查找相似单词的方法
- THREE.JS入门教程(2)着色器-上
- Android获取手机电池电量用法实例
- jquery validate和jquery form 插件组合实现验证表单后AJAX提交
- scrollWidth,clientWidth,offsetWidth的区别
- 分析 rudy 类
- DOS下测试通讯的常用命令分享(dir>prn)
- 谈谈sqlserver自定义函数与存储过程的区别
- mongodb数据库的6个安全设置命令
- mysql密码忘记怎么办
- jQuery背景插件backstretch使用指南
- 用Javascript 和 CSS 实现脚注(Footnote)效果
- 基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
- yahoo注册了一个4位com域名5年80元
- Java中用户向系统传递参数的三种基本方式实例分享
- 详解Window7 下开发php扩展