Мне любопытно, почему эта первая функция работает (OOP), но вторая вызывает и ошибка. Может кто-нибудь объяснить?
class Solution(object):
def __init__(self):
self.solved = {0:0,1:1,2:1}
def fibonacci(self, n):
"""
:type n: int
:rtype: int
"""
if n in self.solved.keys():
return self.solved[n]
else:
value = self.fibonacci(n-1) + self.fibonacci(n-2)
self.solved[n] = value
return value
t = Solution()
t.fibonacci(7)
>>> 13
Но это не работает
found = {0:0,1:1,2:1}
def fibonacci(n):
if n in found.keys():
return found[n]
else:
value = fibonacci(n-1) + fibonacci(n-2)
found[n] = value
return value
fibonacci(7)
>>>TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Редактировать: ошибка обнаруживается только при выполнении в Google Colab, а не в локальной python IDE.