1
我想調用對象本身內的對象的實例方法,它們都來自同一個類。但我有一個無限遞歸,我認爲'自我'不會改變,並始終引用第一個對象。在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
What's錯了嗎?我不懂Python的遞歸?怎麼辦? 感謝您的幫助,請原諒我英語不好。
Thanks !!,現在我知道python中的類屬性和實例屬性。 – ecdani