Hallo,
eine Methode in meiner Klasse enthält eine untergeordnete rekursive Funktion. Diese tut es für kleine Instanzen der Klasse wunderbar und ist vor allem elegant. Enthalten die Instanzen aber viele Subelemente, bekomm ich von der virtuellen Maschine die folgende Fehlermeldung:
"maximum recursion depth exceeded".
Wahrscheinlich heißt das auf pythonisch, dass in meinem Heap kein Platz mehr ist. Die Frage ist, was ich da tun kann. Die Entrekursivierung meiner Funktion ist zum einen schwierig und führt zum anderen zu einem häßlichen Konstrukt. Gibt es eine Möglichkeit an einen ausreichend großen Heap zu kommen, oder soll ich doch entrekurisvieren?
Data
Was tun wenn der Heap platzt!
hi, mit sys.setrecursionlimit kannst du die maximale Rekursionstiefe hochschrauben, ist aber riskant. Der Standart ist auf 1000 gesetzt, aber viel Rekursion kann recht Speicher lastig sein und zu abstürzen führen... Ich würde dir eher zur Entrekursivierung raten.
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Data,
wenn die Subelemente in Listen oder Dictionaries angeordnet sind, dann durchlaufe diese mit einer "normalen" schleife, und verwende die Rekursion nur, wenn eine Ebene weiter hinabgestiegen wird.
Gruß
Dookie
wenn die Subelemente in Listen oder Dictionaries angeordnet sind, dann durchlaufe diese mit einer "normalen" schleife, und verwende die Rekursion nur, wenn eine Ebene weiter hinabgestiegen wird.
Gruß
Dookie