Я пытаюсь вызвать метод экземпляра объектов внутри словаря, у которого есть сами объекты, все из одного класса. Но у меня бесконечная рекурсия, я думаю, что «я» не меняется и ссылается на первый объект все время.Метод вызова метода рекурсивно в python
class Foo():
name = 'name'
foo_objects = {}
def print_name(self):
output = self.name
for key, value in self.foo_objects.items():
output += value.print_name()
return output
Я использую это так:
def main():
foo = Foo()
foo.foo_objects['key'] = Foo()
print foo.print_name()
if __name__ == '__main__':
sys.exit(main())
И я получаю эту ошибку:
...etc...
output += value.print_name()
File "C:\dev\python\projects\test\test.py", line 41, in print_name
output += value.print_name()
File "C:\dev\python\projects\test\test.py", line 41, in print_name
output += value.print_name()
RuntimeError: maximum recursion depth exceeded
как там не так? Что я не понимаю рекурсии python? Как это можно сделать? Спасибо за любую помощь, и извините меня, мой плохой английский.
Спасибо, теперь я знаю об атрибутах класса и атрибутах экземпляра в python. – ecdani