Python細節 二 小資料池

2022-05-17 02:56:31 字數 1294 閱讀 8265

python是由**塊構成的

**塊,乙個模組.乙個函式,乙個類,乙個檔案,eval(),exec()執行的時候也是乙個**塊

1.記憶體位址 id()

通過id() 我們可以檢視到乙個變數表示的值在記憶體中的位址

a = 'alex'

print(id(a)) #4541631158

== 和is

==比較的是值(內容) true

is比較的是記憶體位址(是不是同乙個物件) false

lst1 = [1,2,3]

lst2 = [1,2,3]

pritn(lst1 == lst2) #true 長得一樣

print(lst1 is lst2) #false 不是同乙個物件

3.小資料池 數字(-5-256)之間的整數會被快取

lst1 = 'alex'

lst2 = 'alex'

pritn(lst1 == lst2)

print(lst1 is lst2) #在python中缺省會把整數,布林值,字串進行快取

快取規則

如果字串的⻓度是0或者1, 都會預設進⾏快取

字串⻓度⼤於1, 但是字串中只包含字⺟, 數字, 下劃線時才會快取

⽤乘法的到的字串. ①. 乘數為1, 僅包含數字, 字⺟, 下劃線時會被快取. 如果

包含其他字元, ⽽⻓度<=1 也會被駐存, ②. 乘數⼤於1 . 僅包含數字, 字⺟, 下線這個時候會被快取. 但字串⻓度不能⼤於20

指定駐留. 我們可以通過sys模組中的intern()函式來指定要駐留的內容.

特殊字元(中文除外)定義乙個的時候進行駐留

手動快取,需要呼叫工具

from sys import intern
**塊的規則

#數字:全部駐留

#字串:1.做乘法的時候,總長度不能超過20.

# 2.自己定義的都駐留

# 3.乘數為1的時候就是賦值

# 4.python3.7乘法的時候總長度不能超過4096

需要記住:小數池支援數字字元布林值

​ 數字 -5 - 256

​ 字串乘法時長度不能超過20

python小資料池

name jerry print id name is 是什麼?又是什麼?是比較的兩邊的數值是否相等,而 is 是比較的兩邊的記憶體位址是否相等。python程式是由 塊構造的。塊是乙個python程式的文字,他是作為乙個單元執行的。塊 乙個模組,乙個函式,乙個類,乙個檔案等都是乙個 塊。pytho...

小資料池,字典

id 檢視記憶體位址 name alex name1 alex print id name 31302632 print id name1 31302632 is 檢視是不是乙個 通過記憶體位址 print name name1 檢視等號兩邊的值 def func pass 塊1 name alex...

python中的 小資料池 is 和

一種資料快取機制,也被稱為駐留機制 小資料池針對的是 整數 字元 布林值 其他的資料型別不存在駐留機制 在python中對 5 到256之間的整數會被駐留在記憶體中,將一定規則的字串快取.在使用的時候,記憶體中只會建立乙個該資料的物件.儲存在小資料池中.當使用的時候直接從小資料池中獲取物件的記憶體引...