溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中為變量開辟內存

發(fā)布時間:2021-01-21 16:26:11 來源:億速云 閱讀:230 作者:Leah 欄目:開發(fā)技術

本篇文章給大家分享的是有關怎么在python中為變量開辟內存,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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

x =5之后,我們要了解它的過程:系統(tǒng)先是找了一塊內存,將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中為變量開辟內存

也就是說在執(zhí)行x = 4,y = 5之后,x,y分別指向了不同的地址,當執(zhí)行 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

當執(zhí)行了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的區(qū)別較大,希望大家注意。

二: 內存大小

我們來看一下這樣的代碼:

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

從上面的程序中,我們知道系統(tǒng)給分配的地址分別是:

10413964
10413952
10413940

所以我們大膽推測,python中應該給這些整數(shù)的字節(jié)有可能就是12(哈哈,純屬個人推測)

有可能內存中就是這樣了的:

怎么在python中為變量開辟內存

哈哈,也該就是這樣子了, 至于其他的大小,有興趣的朋友可以研究研究

三:python內存

是不是說:在python中,系統(tǒng)將每一個值都放在了一個固定的位置,不然為什么,每一次探究內存地址的時候,結果都是一樣的(數(shù)值相等,地址也相等)

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

假如系統(tǒng)為4分配了一塊內存,遵循某種規(guī)則(類似于c里面的內存對齊),那么接下來為5分配了另一塊內存,權且分配到了10413976

那么下面這個如何解釋:

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

假如遵循某種規(guī)則的話,應該是6也分配到了10413976去了,可是,他被分配到了10413964

我們再來看:

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

以上就是怎么在python中為變量開辟內存,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI