我已經閱讀了有關python如何創建對象並將這些作爲變量分配給它的「標記」。但是,我發現如果有兩個字符串或整數具有相同的值,那麼它只會爲它分配一個內存點,與列表,元組和元素不同。有一種情況發生時,是否有規則或類型列表?特別是,如果我設置創建不同的對象或相同的取決於類型(基本Python)
>>> x,y='a','a'
>>> x is y
True
>>> x,y=1,1
>>> x is y
True
但在另一方面,如果我做
>>> x,y={'a':1},{'a':1}
>>> x is y
False
>>> x,y=(1,),(1,)
>>> x is y
False
>>> x,y=[1],[1]
>>> x is y
False
有兩個原因:Python在代碼常量中存儲不可變的文字並重用這些常量,*和*也是有效標識符的字符串文字被實現(同一個字符串對象被重複使用而不是創建新實例)。 – 2014-10-28 12:22:35