1、物件導向
2、內建函式__hash__
3、內建函式__eq__
1、定義乙個類,然後類中物件的屬性有:姓名,性別,年齡,部門
2、假設幾年後,內部員工轉崗了,
3、到了另乙個崗位後,姓名,性別,年齡新的部門,在另乙個員工表有了新的資料
4、然後我認定,假設員工物件的姓名和性別一致,那麼我就認定這是乙個人
5、去重,篩選
1、說到去重,首先想到 set集合
2、然後,與 set 有關的內建函式 __hash__,__eq__
3、hash演算法,我自定義了hash的方法,讓他只計算員工的 name 和 ***,如果 hash 的值相同
4、那麼就執行 __eq__ 這個函式,然後判斷它們的 name and *** 是否相同
5、相同就去重。
6、最後列印出來,測試結果
class
employee
:def
__init__
(self,name,age,***,partment)
: self.name = name
self.age = age
self.*** = ***
self.partment = partment
def__hash__
(self)
:'''判斷 hash 值是否相等'''
return
hash
('%s %s'
%(self.name,self.***)
)def
__eq__
(self,other)
:'''如果 hash 相等的話,然後就會觸發 __eq__方法
來判斷他們的 name 和 *** 是否相等,然後再來去重'''
if self.name == other.name and self.*** == other.***:
return
true
employee_list =
for i in
range
(200):
'''假設建立了兩百個員工,但是年齡不同'''
'mayun'
,i,'man'
,'entrepreneur'))
for i in
range
(200):
'mahuateng'
,i,'man'
,'entrepreneur'))
for i in
range
(200):
'liuqiangdong'
,i,'man'
,'entrepreneur'))
# print(employee_list)
employee_list =
set(employee_list)
for person in employee_list:
print
(person.__dict__)
#使用 set 後先觸發 hash 判斷,如果hash相等的話,這時候就會觸發__eq__
C 面試題 之物件導向
說到物件導向,大家第一反應應該就是它的三大特性 封裝性 繼承性和多型性。那麼我們先簡單的了解一下這三大特性 1 封裝性 封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。在c 中類中成員的屬性有 public,protected,pr...
練習之面試題。
今天繼續來做一些面試題鞏固自己所學的知識。1.將兩個鍊錶的值加起來求出新鍊錶。如 p1 1 2 3 4 5 6.p2 4 5 6 7 8 9.結果是 5 7 9 0 4 6.舉例 尾插函式。slistnode listpushback slistnode p1,int val while p3 pn...
Vue之面試題
1 說下vue資料雙向繫結的原理 2 說說vuex的作用以及應用場景 3 說說vue元件的資料通訊方式 4 vue的原始碼有看過嗎?說說vuex工作原理 5 為什麼說虛擬 dom會提高效能,解釋一下它的工作原理 6 請你詳細介紹一些 package.json 裡面的配置 7 為什麼說vue是一套漸進...