2013-11-01 13 views
-2

希望有人能解釋以下差異:的Python內置的ID()不一致:

>>> s1 = "Cyber security" 
>>> s2 = "Cyber security" 
>>> id(s1) == id(s1) 
True 
>>> id(s1) == id(s2) 
False 
>>> s1 = "cyber" 
>>> s2 = "cyber" 
>>> id(s1) == id(s2) 
True 
>>> s2 = "cyber " 
>>> s2 = "cyber " 
>>> id(s1) == id(s2) 
False 

爲什麼空間使ID()假的,但不同的變量沒有空格是正確的?

+0

注意:雖然不管你看到相同的效果,但是你的成績單不會顯示你想要的結果,因爲你不會在最後一組中改變's1'。所以你在比較''網絡「與'」網絡「''。 – DSM

回答

0

id() Python文檔:

這是保證是用於在其壽命期間該對象獨特和恆定的整數(或長整數)。

絕對不能保證兩個物體會有相同的id,實際上相反是有保證的。

如果您想比較字符串,請直接比較它們。