什麼是小數據池? 小數據池就是Python中一種提升效率的方式,固定數據類型使用同一個內存地址 小數池 -- 支持: str,int,boolpython
小數據池是幹嗎的? a = 1 b = 1 id 查看空間的內存地址 獲取開闢空間的一種地址 print(id(a)) print(id(b)) 函數
小數據池數字支持範圍: -5 ~ 256 *記住ui
a = 300 b = 300 print(id(a)) print(id(b))spa
代碼塊: 一個文件,一個模塊,一個函數,一個類,終端中每一行都一個代碼塊 在python中是用字典的方式存儲內存
a = 1000 b = 1000 print(id(a)) print(id(b))字符串
is # 判斷兩個內存地址是否相同 # 必須記住 == # 判斷等號兩邊的值是否相同 # 必須記住pycharm
字符串: 1.字符串在作乘法的時候總長度不能超過20,進行駐留 # 記住 2.本身定義的字符串 長度不限制 字符串必須(字母,數字.下劃線)組成,進行駐留 3.特殊字符(中文除外)定義1個時候,進行駐留 4.字符串*1 其實就是賦值io
若是is判斷相同 == 必定相同 若是==判斷相同 is 不必定相同class
a = 1000 b = 1000 print(a == b)效率
a = "alexdsb" * 2 b = "alexdsb" * 2 print(a is b)
a = "12345678912345678qwertyuioqwertyuioQWERTYUIOWERTYUIOQWERTYUIOasdfghjksdfghjkasdgadsfasdfgasdgasdgfsdaf" b = "12345678912345678qwertyuioqwertyuioQWERTYUIOWERTYUIOQWERTYUIOasdfghjksdfghjkasdgadsfasdfgasdgasdgfsdaf" print(a is b)
a = "你" b = "你" print(a is b) # pycharm中是True 由於執行了代碼塊,終端中是False
a = "@" b = "@" print(a is b)
a = "你好" b = a * 1 print(a is b)
先執行代碼塊,不符合代碼塊纔會執行小數據池
數字:所有駐留
1.字符作乘法的時候總長度不能超過20 2.自定定義的都駐留 3.乘數爲1的時候 就是賦值 4.python3.7 乘法的時候總長度不能超過4096
總結: 小數池 -- 支持: str,int,bool 小數據池數字: -5 ~ 256 小數據池字符串: 乘法時長度不能超過20
怎麼能本身駐留? 須要使用python的內置模塊
from sys import intern a = intern("@@@@@@"20) b = intern("@@@@@@"20) print(a is b) # 本身進行駐留