標籤: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小資料池、代碼塊