id,is,== 的含義

id是內存地址,那就有人問了,什麼是內存地址呢? 你只要創建一個數據(對象)那麼都會在內存中開闢一個空間,將這個數據臨時加在到內存中,那麼這個空間是有一個唯一標識的,就好比是身份證號,標識這個空間的叫做內存地址,也就是這個數據(對象)的id,那麼你可以利用id()去獲取這個數據的內存地址:

name = 'Jerry'
print(id(name))

is 是什麼? == 又是什麼?

== 是比較的兩邊的數值是否相等,而 is 是比較的兩邊的內存地址是否相等。

關於代碼塊的認識

Python程序是由代碼塊構造的。塊是一個python程序的文本,他是作為一個單元執行的。
代碼塊:一個模塊,一個函數,一個類,一個文件等都是一個代碼塊。

代碼塊的緩存機制

Python在執行同一個代碼塊的初始化對象的命令時,會檢查是否其值是否已經存在,如果存在,會將其重用。

小數據池

小數據池,不同代碼塊的緩存機制,也稱為小整數緩存機制,或者稱為駐留機制。

Python自動將-5~256的整數進行了緩存,當你將這些整數賦值給變量時,並不會重新創建對象,而是使用已經創建好的緩存對象。

python會將一定規則的字符串在字符串駐留池中,創建一份,當你將這些字符串賦值給變量時,並不會重新創建對象, 而是使用在字符串駐留池中創建好的對象。

其實,無論是緩存還是字符串駐留池,都是python做的一個優化,就是將~5-256的整數,和一定規則的字符串,放在一個‘池’(容器,或者字典)中,無論程序中那些變量指向這些範圍內的整數或者字符串,那麼他直接在這個‘池’中引用,言外之意,就是內存中之創建一個。