我刚开始学习 Python 的面向对象编程并正在学习继承的概念。我发现了以下代码:
class ContactList(list):
def search(self, name):
'''Return all contacts that contain the search value in their name.'''
matching_contacts = []
for contact in self:
if name in contact.name:
matching_contacts.append(contact)
return matching_contacts
class Contact:
all_contacts = ContactList()
def __init__(self, name, email):
self.name = name
self.email = email
self.all_contacts.append(self)
我想知道为什么我们要使用
self.all_contacts.append(self)
,以及for contact in self
是如何工作的?如果我理解正确,self
指向一个类(对象)的实例,并将其附加到列表中对我来说并不容易。