python中的变量如何开辟内存


Posted in Python onJune 26, 2018

python下的变量

不需要预先声明变量的类型,变量的类型和值在赋值的那一刻被初始化(声明和定义的过程一起完成)

在python中, 每一个变量在内存中创建,我们可以通过变量来查看内存中的值

哈哈,这里是不是很熟悉,跟c中的指针一样啊(访问内存中的值)

首先大家需要了解一点:在python中:

x =5之后,我们要了解它的过程:系统先是找了一块内存,将5存储了进去,紧接着x指向了当前的这块内存

预测1:python下的变量是一个指针

>>> x = 4 
>>> y = 5 
>>> print x 
4 
>>> print y 
5 
>>> id(x) 
10413988 
>>> id(y) 
10413976 
>>> x = y 
>>> id(x) 
10413976 
>>> id(y) 
10413976 
>>>

从上面我们可以看到:

x = 4

说明x指向了内存中存储为4的那个地址,那个地址是10413988

y = 5

说明y指向了内存中存储为5的那个地址,那个地址是10413976

python中的变量如何开辟内存

也就是说在执行x = 4,y = 5之后,x,y分别指向了不同的地址,当执行 x = y之后:

python中的变量如何开辟内存

也就是说,x指向了y所指向的内存了,这里我们知道,它们都指向同一块内存

哈哈,原来跟c里面的指针真的一样哎!!!哈哈哈

(但是,但是,但是:就这些吗??)

>>> x = 4 
>>> print x 
4 
>>> id(x) 
10413988 
>>> x = 5 
>>> print x 
5 
>>> id(x) 
10413976 
>>>

好,我们大家接着看:

python中的变量如何开辟内存

也就是说:开始的时候,x指向了10413988这块内存,里面存储的是4

当执行了x = 5之后,也就变成了这样:

python中的变量如何开辟内存

好,ok就是这样了,

不知道大家注意到了吗?

在python中,一开始初始化存储在内存的东西是不可以更改的,我们所能更改的只是它的指向,

但是,但是,在c中,对于int x= 4; 也就是说x的地址是定的,里面存储的东西可以更改

#include <stdio.h> 
 
int main(){ 
 int x = 4; 
 printf("%p %d\n", &x, x); 
 x = 5; 
 printf("%p %d\n", &x, x); 
  
 return 0; 
}

我们大家再看一下运行结果:

python中的变量如何开辟内存

从上面可以看到,地址并没有变,好了,这一点,python和c的区别较大,希望大家注意。

二: 内存大小

我们来看一下这样的代码:

>>> x = 6 
>>> id(x) 
10413964 
>>> y = 7 
>>> id(y) 
10413952 
>>> z = 8 
>>> id(z) 
10413940 
>>>

从上面的程序中,我们知道系统给分配的地址分别是:

10413964
10413952
10413940

所以我们大胆推测,python中应该给这些整数的字节有可能就是12(哈哈,纯属个人推测)

有可能内存中就是这样了的:

python中的变量如何开辟内存

哈哈,也该就是这样子了, 至于其他的大小,有兴趣的朋友可以研究研究

三:python内存

是不是说:在python中,系统将每一个值都放在了一个固定的位置,不然为什么,每一次探究内存地址的时候,结果都是一样的(数值相等,地址也相等)

>>> x = 4 
>>> y = 5 
>>> id(x) 
10413988 
>>> id(y) 
10413976 
>>>

假如系统为4分配了一块内存,遵循某种规则(类似于c里面的内存对齐),那么接下来为5分配了另一块内存,权且分配到了10413976

那么下面这个如何解释:

>>> x = 4 
>>> y = 6 
>>> id(x) 
10413988 
>>> id(y) 
10413964 
>>>

假如遵循某种规则的话,应该是6也分配到了10413976去了,可是,他被分配到了10413964

我们再来看:

>>> x = 4 
>>> y = 6 
>>> id(x) 
10413988 
>>> id(y) 
10413964 
>>> z = 5 
>>> id(z) 
10413976 
>>>

这,哈哈,应该就是这样的了的吧!!!!

也就是说:python中,系统还是python本身为其分配内存的时候就已经根据这个值是多少,确定了内存的位置了。。。

以上这篇python中的变量如何开辟内存就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
python实现对输入的密文加密
Mar 20 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
使用Pandas对数据进行筛选和排序的实现
Jul 29 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
jupyter notebook清除输出方式
Apr 10 Python
基于python 取余问题(%)详解
Jun 03 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
pyQt4实现俄罗斯方块游戏
Jun 26 #Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 #Python
python实现俄罗斯方块
Jun 26 #Python
解决python报错MemoryError的问题
Jun 26 #Python
pygame实现俄罗斯方块游戏
Jun 26 #Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 #Python
解决python读取几千万行的大表内存问题
Jun 26 #Python
You might like
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
Python删除n行后的其他行方法
2019/01/28 Python
提升python处理速度原理及方法实例
2019/12/25 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
一套Delphi的笔试题二
2013/05/11 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
办理居住证介绍信
2014/01/15 职场文书
餐饮管理自我介绍信
2014/01/15 职场文书
数控专业自荐书范文
2014/03/16 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
学校运动会报道稿
2014/09/23 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python