python面試題之物件導向and內建函式

2021-10-05 05:54:55 字數 1582 閱讀 3606

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是一套漸進...