
Hallo, ich habe eine Klasse JobQueue, die eigentlich eine Liste mit ein paar zusätzlichen Methoden ist: Voreinstellung fürs Sortieren: def sort(self, reverse = False): """ Sort by priority """ self._queue.sort(key = lambda a: a.prio, reverse=reverse) Hinzufügen: def put(self, job): job.jid = gen_jid() self._queue.append(j) return job.jid filtern: def running_jobs(self): self.sort() return [job for job in self._queue if job.running] usw. Also nichts großartiges. Der Benutzer der Klasse soll auch problemlos an die verwaltete Liste selber kommen (hier self._queue). Spricht nun irgendwas dagegen die Klasse von list abzuleiten und selber eine Liste zu sein? Damit das Verhalten möglichst wenig beeinflußt wird, würde ich sort so schreiben: def sort(self, key = lambda a: a.prio, reverse = False): """ Sort by priority """ super(JobQueue, self).sort(key, reverse) (geht das? Einen lambda Ausdruck als default Argument?) Da ich für alle neuen Jobs in der Queue selber eine ID generiere (siehe put()) muss/würde ich gerne garantieren, dass das für alle neu hinzugefügten ebenso ist. Reicht es dafür append() zu überschreiben? Effizienz spielt bei der ganzen Sache keine Rolle, die jeweiligen Jobs haben Rechenzeiten von 1 bis mehreren Tagen, da tut sich nicht viel... ;-) Mich würde es interessieren, ob es da noch irgendwelche versteckten Probleme gibt? Und was prinzipiell Eure Meinung dazu ist. Grüße, Florian