ich haben in einem Programm gerade ein Speicherproblem. Das konnte ich recht schnell eingrenzen, weil dort in Funktionen Listen als Default-Parameter benutzt werden.
Ich habe gelesen, dass das böse ist, aber noch nicht so ganz verstanden warum.
Ich habe eine Klasse "Article" in der es folgende Funktion gibt:
Code: Alles auswählen
def update_materials(self, checked_articles=[]):
checked_articles.append(self)
[...]
for article in self.child_articles:
if article not in checked_articles:
article.update_materials(checked_articles)
Code: Alles auswählen
def update_materials(self, checked_articles=None):
if not checked_articles:
checked_articles = []
checked_articles.append(self)
[...]
for article in self.child_articles:
if article not in checked_articles:
article.update_materials(checked_articles)
Der Interpreter zieht nach wie vor Speicher und gibt ihn nicht wieder frei, aber dann weiß ich, dass ich woanders suchen muss