オブジェクト自体を持つ辞書内のオブジェクトのインスタンスメソッドを呼び出そうとしていますが、すべて同じクラスのものです。しかし、私は無限再帰を持っています。「自己」は変わらず、最初のオブジェクトを常に参照していると思います。
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再帰について理解していないことは何ですか? どのようにすることができますか?助けてくれてありがとう、そして私の悪い英語を許してください。