python物件身份的比較

2021-08-04 20:12:11 字數 1304 閱讀 6003

物件和類

物件=屬性+方法

python是把所有的都當做乙個物件,屬性就是乙個具體的值,而方法就是對於物件來說,可以通過什麼方法來操作物件。

物件身份的比較

foo1=foo2=4.3 --->可能我們會認為這是乙個多重賦值的過程,將4.3賦值為foo1,foo2這兩個變數,但是實際上是建立了乙個4.3的數字物件,然後將這個物件的引用賦值給foo1,foo2,也就是說foo1和foo2得到不是4.3本身,而是對4.3這個物件的引用。
在python中建立了乙個物件,然後賦值給變數的只是物件的乙個引用,每賦值一次就相當於給變數新增了乙個標籤,當所有的標籤都撕掉時,那麼這個物件就會被**。

對於python來說,每個物件天生都有乙個計數器,用來計數有多少個變數引用了自己。

a is b----->等價於id(a)=id(b)

--->

isis

not 用來判斷兩個變數是否指向同一物件

#-----------------------物件身份的比較------------------------#

#-----------------------物件身份的比較------------------------#

a=[1,3,4]

#變數a---->指向物件[1,3,4]

b=a#變數b---->指向變數a---->這裡把a看作乙個物件

result= a is b

result1=a is not b

#判斷變數a和變數b是否指向同一物件

print result,result1

列印結果:

true

false

process finished with

exit code 0

我們還可以通過id()來判斷兩個變數是否指向同乙個物件

(a,b,c,d,e,f)=(1,1,2,1.0,1.0,2.0);

print a,b,c,d,e,f

print id(a),id(b),id(c),id(d),id(e),id(f);

列印: 112

1.01.0

2.039679632

39679632

39679620

39712480

39712480

39712448

--->我們可以看到a,b的id相同

d,e的id相同

物件身份比較操作符

1 python提供了is和is not操作符來測試兩個變數是否指向同乙個物件。a is b 這個表示式等價於下面的表示式。id a id b 2 a 1 id a 1502566672 b 1 id b 1502566672 c 1.0 id c 5448880 d 1.0 id d 329857...

物件身份比較 is 整型物件和字串物件的快取

最近開始學習python,其實知道python和想學的念頭算算也有兩三年了 好慚愧 但怎麼說也一直沒有乙個 誘因 吧。然後實驗室最近需要學習swift物件儲存,加之openstack這個開源雲平台的整套東西都是用python寫的,所以go go go開始動手啦。作為第一篇學習記錄,題目實在是不好起。...

Python 整數物件is比較

python 整數用is比較 is 比較的是兩個物件的id值 記憶體中的位址 5,256 之間常用整數對比 在比較整數時,要知道python對於常用整數的儲存,5,256 之間的整數是存放在快取中的鍊錶中,需要使用時不再建立新的物件,而是直接引用物件 通過以下 可以看到區別 a 10 b 10 a ...