2014-12-18 1 views
3

Я использую Python 2.6.6.Вызов родителя __init __()

Я сузил мой ошибочный код для этих 2-х классов:

class Graph(object): 
    def __init__(self, name): 
    self.name = name 
    self.testme = 3 

и

class StepPlot(Graph): 
    def __init__(self, name): 
    print("fdasfdsf") 
    print(dir(super(Graph, self))) 
    super(Graph, self).__init__(name) 

К сожалению, когда я экземпляр StepPlot с StepPlot('fdsfa'), я получаю ошибку

TypeError: object.__init__() takes no parameters

Разве он не может принять один параметр?

Глядя на

When to call Python's super().__init__()?

Этот класс организация должна работать.

Я что-то пропустил? Любая помощь будет оценена по достоинству.

ответ

3

Первый аргумент super должен быть класс, из которого она называется:

super(StepPlot, self).__init__(name) 

Для получения дополнительной информации, здесь есть ссылка на documentation.

Смежные вопросы