私はオブジェクト指向のPythonを学んでいます。この問題はpythonがappendメソッドを使う組み込みの 'list'クラスを継承するようになっています。Python、なぜ私たちは 'list'クラスを継承しなければならないのですか?
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
なぜ空リストを宣言して追加できないのですか?例えばそれは、リストクラスの継承せずに、次のコードで見つけ作品:ContactSearchで
class Contact:
all_contacts = []
def __init__(self, name, email):
self.name = name
self.email = email
Contact.all_contacts.append(self)
「自己」とは何を期待していますか?あなたのクラスはデータを格納していますか?もしそうなら、どうですか? –
申し訳ありませんが、私はあなたを取得していません。私が理解しようとしているのは、これらの2つのクラスで、これらの2つのクラスの違いは何ですか: matching_contact = []と all_contacts = [] どちらも空リストを宣言していませんか? – Hannan
問題は、 'for contact in self:'行です。これは、反復をサポートするように書くクラスを必要とします。 'list'から継承するとき、あなたは' list'に組み込まれた反復を継承します –