python基礎之運算子
阿新 • • 發佈:2018-12-19
Python身份運算子
運算子 | 描述 | 例項 |
---|---|---|
is | is 是判斷兩個識別符號是不是引用自一個物件 | x is y, 類似 id(x) == id(y) , 如果引用的是同一個物件則返回 True,否則返回 False |
is not | is not 是判斷兩個識別符號是不是引用自不同物件 | x is not y , 類似 id(a) != id(b)。如果引用的不是同一個物件則返回結果 True,否則返回 False。 |
is 與 == 區別: is 用於判斷兩個變數引用物件是否為同一個, == 用於判斷引用變數的值是否相等。
a=20 b=20 c=30 print(a is b) #True print(id(a)==id(b)) #True print(b is c) #False
python中會為每個出現的物件分配記憶體,哪怕他們的值完全相等(注意是相等不是相同)。如執行a=2.0,b=2.0這兩個語句時會先後為2.0這個Float型別物件分配記憶體,然後將a與b分別指向這兩個物件。所以a與b指向的不是同一物件:
但是為了提高記憶體利用效率對於一些簡單的物件,如一些數值較小的int物件,python採取重用物件記憶體的辦法,如指向a=2,b=2時,由於2作為簡單的int型別且數值小,python不會兩次為其分配記憶體,而是隻分配一次,然後將a與b同時指向已分配的物件:
Python 中沒有 ++ 或 – 自運算子