logo资料库

python中的变量如何开辟内存.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
python中的变量如何开辟内存 中的变量如何开辟内存 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 也就是说在执行x = 4,y = 5之后,x,y分别指向了不同的地址,当执行 x = y之后: 也就是说,x指向了y所指向的内存了,这里我们知道,它们都指向同一块内存 哈哈,原来跟c里面的指针真的一样哎!!!哈哈哈 (但是,但是,但是:就这些吗??)
>>> x = 4 >>> print x 4 >>> id(x) 10413988 >>> x = 5 >>> print x 5 >>> id(x) 10413976 >>> 好,我们大家接着看: 也就是说:开始的时候,x指向了10413988这块内存,里面存储的是4 当执行了x = 5之后,也就变成了这样: 好,ok就是这样了, 不知道大家注意到了吗? 不知道大家注意到了吗? 在python中,一开始初始化存储在内存的东西是不可以更改的,我们所能更改的只是它的指向, 但是,但是,在c中,对于int x= 4; 也就是说x的地址是定的,里面存储的东西可以更改 #include int main(){ int x = 4; printf("%p %d\n", &x, x); x = 5; printf("%p %d\n", &x, x); return 0; } 我们大家再看一下运行结果: 从上面可以看到,地址并没有变,好了,这一点,python和c的区别较大,希望大家注意。 二:二: 内存大小 内存大小
我们来看一下这样的代码: >>> x = 6 >>> id(x) 10413964 >>> y = 7 >>> id(y) 10413952 >>> z = 8 >>> id(z) 10413940 >>> 从上面的程序中,我们知道系统给分配的地址分别是: 10413964 10413952 10413940 所以我们大胆推测,python中应该给这些整数的字节有可能就是12(哈哈,纯属个人推测) 有可能内存中就是这样了的: 哈哈,也该就是这样子了, 至于其他的大小,有兴趣的朋友可以研究研究 三:三: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中查看变量内存地址的方法浅谈Python 对象内存占用谈谈如何手动释放Python的内存深入解析 您可能感兴趣的文章 Python中的变量和赋值运算符python的类变量和成员变量用法实例教程
分享到:
收藏