从列表继承Python
我刚开始学习Python,并创建了以下继承自列表的类:从列表继承Python,python,inheritance,Python,Inheritance,我刚开始学习Python,并创建了以下继承自列表的类: class Person(list): def __init__(self, a_name, a_dob=None, a_books=[]): #person initialization code list.__init__(a_books) self.name = a_name self.dob = a_dob 然而,有三件事我不明白: 这一行list.\uuuu
class Person(list):
def __init__(self, a_name, a_dob=None, a_books=[]):
#person initialization code
list.__init__(a_books)
self.name = a_name
self.dob = a_dob
然而,有三件事我不明白:
list.\uuuuu init\uuuuu(a\u books)
,实际上并没有初始化我的实例的书籍列表列表。为什么这一步是必要的
列表中没有对self
的引用?Python是如何知道的
因为
list
有一个\uuu str\uuu
方法。对于一个实际的系统,您可能希望list是Person的属性,而不是从list继承。
class Person(list):
def __init__(self, a_name, a_dob=None, a_books=[]):
#person initialization code
super(Person, self).__init__(a_books)
self.name = a_name
self.dob = a_dob
print Person('bob',a_books=['how to bob'])
['how to bob']