Атрибуты Python и Наследование - PullRequest
1 голос
/ 16 июня 2010

Скажите, у меня есть следующий код:

class Class1(object):

    def __init__(self):
        self.my_attr = 1
        self.my_other_attr = 2

class Class2(Class1):

    def __init__(self):
        super(Class1,self).__init__()

Почему Class2 не наследует атрибуты Class1?

Ответы [ 2 ]

10 голосов
/ 16 июня 2010

Вы использовали супер неправильно, измените его на

super(Class2, self).__init__()

В основном вы говорите super выглядеть выше данного класса, поэтому если вы дадите Class1 тогда этот __init__ метод никогда не вызывается.

4 голосов
/ 16 июня 2010

Потому что вы даете super неправильный класс.Должно быть:

class Class2(Class1):

    def __init__(self):
        super(Class2,self).__init__()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...