Мне нужно создать функцию, которая рекурсивно возвращает первую строку списка строк (найдено из Python сравнительных тестов, например, 'agf' <'bcd'). </p>
class Node:
def __init__(self, value, rest):
self.value = value
self.rest = rest
def __eq__(self, other):
return ((type(other) == Node)
and self.value == other.value
and self.rest == other.rest
)
def __repr__(self):
return ("Node({!r}, {!r})".format(self.value, self.rest))
# a StrList is one of None or Node(string, StrList)
def first_string(strlist):
if strlist is None:
return None
res = first_string(strlist.rest)
if strlist.value != res:
return res
Всякий раз, когда я тестирую функцию, основная ошибка, которую я имею, состоит в том, что я возвращаю None только при прохождении узла.
Пример функции:
strlist = Node("xyz", Node("Abc", Node("49ers", None)))
self.assertEqual(first_string(strlist),"49ers")
Вывод:
None
Я ценю, если кто-то может мне помочь.