0
我想知道爲什麼這個評價爲True
。python是否爲int和許多引用存儲一個值?
x = 1
if x is 1:
print "Does x and 1 point to the same object?"
print "Does this mean python doesn't store redundant values?"
它不適用於這種情況,因爲我期望。
x = range(10)
y = range(10)
if not x is y:
print "I expect this"
我的理解是,is
檢查是否兩個名字都指向同一個對象。這是否意味着python有避免創建冗餘值的機制?
在-5到256之間,是的,它們實際上是相同的對象,具體取決於Python的實現 – CoryKramer
您不應該依賴'is'的結果。 python優化* immutable *內置類型是完全合理的。 '是'是影響結果的**唯一**操作符,所以這並沒有太大的突破。但是,這隻適用於幾種類型,因爲程序創建的大多數對象都屬於應該優化的特定類別(例如整數,列表,字典)。 – Bakuriu