gpt4 book ai didi

python - append(self) 在 Python 类中是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:19 26 4
gpt4 key购买 nike

我是 Python 中 OOP 的新手,正在研究继承概念。我遇到了以下代码:

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 指定一个类(对象)的实例,并且附加到一个列表对我来说不是微不足道的。

最佳答案

all_contacts 是一个类变量——它对类是唯一的,而不是对每个实例都是唯一的。可以使用 Contact.all_contacts 访问它。每当您创建新联系人时,它都会附加到此所有联系人列表中。

ContactList 继承自 list,因此 for contact in selffor i in [1,2, 3] -- 它将遍历它包含的所有项目。它与 list 唯一不同的是实现了一个新方法,search

关于python - append(self) 在 Python 类中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com