日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

比较python类的两个instance(对象) 是否相等

發布時間:2023/12/13 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 比较python类的两个instance(对象) 是否相等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.yihaomen.com/article/python/281.htm

?

比較python類的兩個instance(對象) 是否相等

字體大小:?小?中?大 ? 對于同一個Class,可以創建不同的實例(instance), 如何比較這兩個 instance 是否相等呢?我們知道,對于計算機來說,要判斷兩個對象是否相等,就是看在內存中的地址是否同一個。如果內存地址一樣,那么肯定是相等的。這種情況通常出現在一個對象是另外一個對象的引用時出現。
但在實際的開發過程中,要比較兩個對象是否相等,并不是通過內存地址來判斷的,而是通過這兩個對象的部分屬性值,或者全部屬性值來對比判斷的。
假設有一個職員Class, 我們分別創建了兩個對象
?程序代碼
class Staff(object):
????def __init__(self,id,name,sex):
????????self.id=id
????????self.name=name
????????self.sex=sex
我們這樣認為,如果id 相同,則表示兩個對象相等,id姑且表示身份證編號吧,如果身份證編號相同,那么肯定是同一人,在實際的項目中會遇到這樣的情況。
創建對象并查看各自的內存地址
?程序代碼
staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
#12327248 12327184
結果很明顯,在不同的內存地址,這時候如果判斷 staff1==staff2 ,結果肯定是??False。

如何滿足我們的需要,只要id 相同的對象,就認為是相等的對象呢,有如下幾種方法:
一.重載 Staff Class 的 __eq__ 方法
?程序代碼
class Staff(object):
????def __init__(self,id,name,sex):
????????self.id=id
????????self.name=name
????????self.sex=sex
????????
????def __eq__(self,other):
????????return self.id==other.id?

staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
print staff1==staff2
#True
結果返回為 true,說明是相等的,但在計算機中的內存地址,肯定是不一樣的。這里重載了__eq__方法,當然你還可以 增加比較條件,例子中只對比了id. 用同樣的方法,還可以實現 兩個對象相加等操作,重載__add__ 方法。

2.直接屬性值對比來實現
?程序代碼
staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
????
print staff1.__dict__
print staff2.__dict__
????
if staff1.__dict__['id']==staff2.__dict__['id']:
??????print 'yes,equal'
你會發現,這樣也是可以的,同樣也可以對比多個屬性,這里的重點是用到了python Class 的 __dict__系統內置方法來實現。?

轉載于:https://www.cnblogs.com/saolv/p/9839626.html

總結

以上是生活随笔為你收集整理的比较python类的两个instance(对象) 是否相等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。