Почему я не могу получить свой элемент Inner class родительского класса? - PullRequest
0 голосов
/ 27 марта 2020

Оба файла помещаются в один и тот же каталог queueLinkedList.py и r6.py

queueLinkedList.py

class Empty(Exception):
    pass

class LinkedQueue:

    class _node:   #which is nested class 

        __slots__ = '_element','_next'

        def __init__(self,element,next):
            self._element = element
            self._next = next

    def __init__(self):
        self._head = None
        self._tail = None
        self._size = 0

    def enqueue(self,element):
        newest = self._node(element,None)
        if self.is_empty():
            self._head = newest
        else:
            self._tail._next = newest
        self._tail = newest
        self._size += 1

и

r6.py


from queueLinkedList import LinkedQueue,Empty


class LinkedQueue1(LinkedQueue):

    def rotate(self):
        if self._size > 1:
            self._tail._next ,self._tail = self._head , self._head
            p = self._head._next
            self._tail._next = None
            self._head = p

a = LinkedQueue1()
for i in range(5):
    a.enqueue(i)
a.rotate()

Я получаю этот тип ошибки:

Traceback (most recent call last):
  File "c:/Users/ATMAN/Desktop/python2/Exercise_of_ds/chapter7/exercise/r7.py", line 28, in <module>
    a.enqueue(i)
  File "c:\Users\ATMAN\Desktop\python2\Exercise_of_ds\chapter7\exercise\queueLinkedList.py", line 31, in enqueue
    newest = self._node(element,None)
  File "c:\Users\ATMAN\Desktop\python2\Exercise_of_ds\chapter7\exercise\queueLinkedList.py", line 13, in __init__
    self._element = element
AttributeError: '_node' object has no attribute '_element

, почему я не могу использовать элемент вложенного класса _node в класс наследования, если я должен объявить метод init () в child класс, тогда скажите, как я должен объявить?

...