0
我正在學習面向對象的python,並遇到這個問題,其中python迫使我從內置的'list'類繼承使用append方法。Python,爲什麼我們必須繼承'列表'類
class ContactSearch(list): #Why inherit from 'list'?
def search(self, name):
matching_contact = []
for contact in self:
if name in contact.name:
matching_contact.append(contact)
return matching_contact
爲什麼我不能簡單地聲明一個空列表並追加到它?例如,它的工作原理在下面的代碼中找到,而不從'列表類的繼承:
class Contact:
all_contacts = []
def __init__(self, name, email):
self.name = name
self.email = email
Contact.all_contacts.append(self)
你期望'self'是什麼?你的班級是否存儲數據?如果是這樣,怎麼樣? –
對不起,我沒有得到你。我試圖理解的是,在這兩個不同的類中,這兩者有什麼區別: matching_contact = []和 all_contacts = [] 是不是都聲明一個空列表? – Hannan
問題是'self for self in line:'這需要您正在編寫的類來支持迭代。當你從'list'繼承時,你繼承了'list'內建的迭代。 –