从列表继承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

我刚开始学习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.\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']