Python 3 OOPS Наследование - PullRequest
0 голосов
/ 11 апреля 2020

Я пытался написать два класса, но у меня ошибка атрибута

class Stack:

    def __init__(self):
        self._data = []

    def is_empty(self):
        return len(self._data)==0

    def push(self,e):
        return self._data.append(e)

    def pop(self):
        if self.is_empty():
            raise Exception('Stack is Empty')
        return self._data.pop()

    def __len__(self):
        return len(self._data)
class para_checker(Stack):

    def __init__(self,string):

        super(Stack).__init()
        self.string = string



    def basic_checker(self):
        balanced = True
        index = 0
        while index < len(self.string) and balanced :
            s = self.string[index]
            if s =='(':
                super.push(s)
            else:
                if super.is_empty():
                    balanced = False
                else:
                    super.pop()
        if balanced and super.is_empty():
            return True
        else:
            return False

Я хочу создать объект дочернего класса и метод доступа parachecker, который также хочет выучить ds al go, используя python

1 Ответ

0 голосов
/ 13 апреля 2020

Вы звоните __init, а не __init__, и вы звоните super не на тот объект.

class Stack:

    def __init__(self):
        self._data = []

    def is_empty(self):
        return len(self._data)==0

    def push(self,e):
        return self._data.append(e)

    def pop(self):
        if self.is_empty():
            raise Exception('Stack is Empty')
        return self._data.pop()

    def __len__(self):
        return len(self._data)
class para_checker(Stack):

    def __init__(self,string):

        super(para_checker, self).__init__()
        self.string = string



    def basic_checker(self):
        balanced = True
        index = 0
        while index < len(self.string) and balanced :
            s = self.string[index]
            if s =='(':
                super.push(s)
            else:
                if super.is_empty():
                    balanced = False
                else:
                    super.pop()
        if balanced and super.is_empty():
            return True
        else:
            return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...