對我來說沒有任何意義,有Contact
對象還自己一個contact_list
屬性,如果是全班級而不是實例化,則屬性更少。我會做這個:
class Contact(object):
def __init__(self, name, email):
self.name = name
self.email = email
def __str__(self):
return f"{self.name} <{self.email}>"
# or "{} <{}>".format(self.name, self.email) in older versions of
# python that don't include formatted strings
contacts = []
def print_contacts(contacts: "list of contacts") -> None:
for c in contacts:
print(c)
adam = Contact("Adam Smith", "[email protected]")
contacts.append(adam)
bob = Contact("Bob Jones", "[email protected]")
contacts.append(bob)
charlie = Contact("Charlie Doe", "[email protected]")
contacts.append(charlie)
print_contacts(contacts)
# Adam Smith <[email protected]>
# Bob Jones <[email protected]>
# Charlie Doe <[email protected]>
或者,模型的AddressBook
知道如何創建Contact
對象,並顯示它們。
class AddressBook(list):
def add_contact(self, *args, **kwargs):
new_contact = Contact(*args, **kwargs)
self.append(new_contact)
def display_contacts(self):
for contact in self:
print(contact)
contacts = AddressBook()
contacts.add_contact("Adam Smith", "[email protected]")
contacts.add_contact("Bob Jones", "[email protected]")
contacts.add_contact("Charlie Doe", "[email protected]")
contacts.display_contacts()
print_contacts(Contact.contact_list),Python中的註釋都打上了''#'不'//,你也需要標記的第二功能作爲一個類方法或任一因素出來 – arielnmz
__init__方法不返回任何有意義的值。所以基本上你應該做'Contact.contact_list.append(self)',因爲'return'沒有任何用處。而且,list.append()不會返回任何東西...... –