python小資料池、代碼塊

來源:互聯網
上載者:User

標籤:color   解釋   UNC   初始   遇到   資料類型   charm   最佳化   http   

一、代碼塊

Python程式是由代碼塊構造的。塊是一個python程式的文本,他是作為一個單元執行的。

代碼塊:一個模組,一個函數,一個類,一個檔案等都是一個代碼塊。

而作為互動方式輸入的每個命令都是一個代碼塊。

什麼叫互動方式?就是咱們在cmd中進入Python解譯器裡面,每一行代碼都是一個代碼塊。

不同的代碼塊:

def func():    print(333)class A:    name = ‘alex‘

 雖然上面的縮排的內容都叫代碼塊,但是他不是python中嚴格定義的代碼塊。
for i in ‘12324545‘:
print(i)


互動模式下,每一行都是一個代碼塊
>>>i1 = 100 可以理解這一行在一個檔案中
>>>i2 = 100 可以理解這一行在另一個檔案中

  

# 二、 id, is ==
name = ‘alex‘ #賦值
print(‘alex‘ == ‘alex‘) #數值相同
name = ‘alex123‘
print(id(name)) #2112772900544

# 在記憶體中id都是唯一的,如果兩個變數指向的值的id相同,就證明他們在記憶體中是同一個。

# is判斷的是兩個變數的id值是否相同。
# 如果is是True, == 一定是True。

# 三、小資料池(緩衝機制,駐留機制)

小資料池的應用資料類型:整數,字串,bool值


# 小資料池,python對記憶體做的一個最佳化:
# 他將 -5~256 之間的整數,以及一定規則的字串,提前在記憶體中建立了池,容器。容器裡固定的放了這些數。
指向的都是同一個記憶體位址
在互動器中
s1 = 100
s2 = 100
指向地址一致

s1 = 1000
s2 = 1000
指向地址不一致

為什麼這麼做:
1. 節省記憶體。
2. 提高效能與效率

 

代碼塊:
python在對於同一個代碼塊中的變數,初始化對象的命令中時,它會將變數與值的對應關係放到一個字典中
如果下面的代碼在遇到初始化對象的命令時,它會先從字典中尋找,如果存在相同的值,他會複用,所以指向的都是同一個記憶體位址。
dic = {‘name‘:[email protected]的記憶體位址}

python互動方式對於不同的代碼塊:初始化命令時,他會從小資料池中尋找。
name = ‘[email protected]‘
name1 = ‘[email protected]‘

 

 1 #記憶體位址會變 2  3 # 小資料池 指向同一地址 4 i1 = 100 5 i2 = 100 6 print(id(i1),id(i2)) 7 # pycharm  140708817920128 140708817920128 8 # 互動方式 140708990083200 140708990083200 9 10 11 # 同一代碼塊。pycharm指向的是同一地址,互動方式指向的不同地址。12 i1 = 100013 i2 = 100014 print(id(i1),id(i2))15 #pycharm 2093897078224 209389707822416 #互動方式 1830950750224 183095075009617 18 19 # 不同代碼塊,地址不同20 def func1():21     i = 100022     print(id(i))    # 209392721947223 24 def func2():25     i = 100026     print(id(i))    # 209392721944027 28 func1()29 func2()30 31 32 # 從小資料取得 地址相同33 def func1():34     i = 10035     print(id(i))       # 14070881792012836 37 def func2():38     i = 10039     print(id(i))       # 14070881792012840 41 func1()42 func2()
小資料池 代碼塊詳解

 

python小資料池、代碼塊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.