我试图在字典中调用对象的实例方法,这些对象本身都来自同一个类。但是我有一个无限递归,我认为'self'不会改变并一直引用第一个对象。
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递归不了解什么?怎么可能呢?感谢您的帮助,请原谅我的英语不好。