首页 > 编程 > Python > 正文

python中的变量如何开辟内存

2020-02-15 22:02:25
字体:
来源:转载
供稿:网友

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 <stdio.h>  int main(){  int x = 4;  printf("%p %d/n", &x, x);  x = 5;  printf("%p %d/n", &x, x);    return 0; } 

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

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

二: 内存大小

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表