Когда я вызываю getMin в своем тестовом файле следующим образом: self.lst.insert(self.lst.getMin()), я получаю ошибку AttributeError: объект 'SortedList' не имеет атрибута 'getMin'< /код>. Я попытался создать отдельную переменную, а затем вызвать getMin, но получил ту же ошибку. Я правильно импортировал класс, поскольку другие мои методы работают, за исключением getMin и getMax, и мне интересно, вызываю ли я его неправильно или есть какая-то ошибка пробелов. Это мой тестовый файл:
import unittest
from SortedList import SortedList
class TestSortedArray(unittest.TestCase):
def setUp(self):
self.lst = SortedList()
def test_insert(self):
self.lst.insert(1)
self.lst.insert(2)
self.lst.insert(3)
self.lst.insert(4)
self.lst.insert(5)
self.lst.insert(6)
self.lst.insert(7)
self.lst.insert(8)
self.lst.insert(9)
self.lst.insert(10)
self.lst.insert(self.lst.getMin())
self.lst.traverse()
if __name__ == '__main__':
unittest.main()
Вот мой основной код:
def identity(x):
return x
class Link(object):
def __init__(self, value, next=None):
self.__data = value
self.__next = next
def getData(self):
return self.__data
def setData(self, value):
self.__data = value
def getNext(self):
return self.__next
def setNext(self, link):
if link is None or isinstance(link, Link):
self.__next = link
else:
raise Exception("Next link must be Link or None")
class SortedList(object):
def __init__(self, key=identity):
self.__first = None
self.__key = key
def getFirst(self):
return self.__first
def setFirst(self, link):
if link is None or isinstance(link, Link):
self.__first = link
else:
raise Exception("First link must be a Link or None")
def __len__(self):
l = 0
link = self.getFirst()
while link is not None:
l += 1
link = link.getNext()
return l
def find(self, goal_key):
link = self.getFirst()
while link is not None and self.__key(link.getData()) < goal_key:
link = link.getNext()
return link
def search(self, goal_key):
link = self.find(goal_key)
if link is not None and self.__key(link.getData()) == goal_key:
return link.getData()
def traverse(self, function=print):
current = self.__first
while current is not None:
function(current.getData())
current = current.getNext()
def insert(self, new_data):
new_link = Link(new_data)
if self.__first is None or self.__key(new_data) < self.__key(self.__first.getData()):
new_link.setNext(self.__first)
self.__first = new_link
else:
previous = None
current = self.__first
while current is not None and self.__key(new_data) >= self.__key(current.getData()):
previous = current
current = current.getNext()
new_link.setNext(current)
previous.setNext(new_link)
def delete(self, goal_key):
if self.__first is None:
raise Exception("No data with matching goal key found in the sorted list.")
if self.__key(self.__first.getData()) == goal_key:
self.__first = self.__first.getNext()
return
previous = None
current = self.__first
while current is not None and self.__key(current.getData()) != goal_key:
previous = current
current = current.getNext()
if current is None:
raise Exception("No data with matching goal key found in the sorted list.")
previous.setNext(current.getNext())
def getMin(self):
if self.__first is None:
return None
return self.__first.getData()
def getMax(self):
current = self.__first
while current.getNext() is not None:
current = current.getNext()
return current.getData()
Подробнее здесь: https://stackoverflow.com/questions/786 ... -test-case
Ошибка атрибута при вызове метода в тестовом примере ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Самая длинная реализация общего префикса не работает в тестовом примере на LeetCode
Anonymous » » в форуме JAVA - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Необходимо использовать переменную глобально в тестовом примере в среде робота.
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-