我正在嘗試學習 Python 中的面向物件編程,但我對如何回傳類的實體有點困惑。
我擁有的代碼的一些背景: Contact 類意味著有一個(全名),這是必需的,零個或多個電話號碼,以及聯系人的零個或多個電子郵件地址。AddressBook 類采用聯系人串列(如上定義),并且“add_contact”方法假設即使在創建聯系人后也會將聯系人添加到地址簿。
class Contact:
def __init__(self, name = None, addresses = False, email_addresses = False):
self.name = name
self.addresses = addresses
self.email_addresses = email_addresses
class AddressBook:
def __init__(self, contacts = []):
self.contacts = contacts
def add_contact(self,new_contact):
self.contacts.append(new_contact)
def contact_by_name(self, person):
return Contact(name = person)
所以我試圖實作的是“contact_by_name”方法將采用名稱(字串)并回傳具有給定名稱的聯系人——即它回傳一個聯系人實體。
例子:
julian = Contact(name="Julian Berman")
book = AddressBook(contacts=[julian])
我想要的是:
book.contact_by_name("Julian Berman") == julian
我盡力想出“contact_by_name”方法的代碼,但它一直給我錯誤,有人可以發送幫助嗎!謝謝!
uj5u.com熱心網友回復:
所以你只是在尋找一個簡單的搜索嗎?
def contact_by_name( self, person ):
for c in self.contacts:
if c.name == person:
return c
return None
請務必處理找不到名稱的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337191.html
