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'内建的迭代。 –