threading - Liste mit Funktionen abarbeiten - jeweils nur 2

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Netter Ansatz! Dann arbeite ich mich doch nochmal da rein...

Allgemeine Python-Syntax-Frage dazu: Was bezweckst du mit den runden Klammern in `submit()`? Ich verstehe die Syntax nicht.
BlackJack hat geschrieben:

Code: Alles auswählen

class ProcessingStep(object):
    # ...
    def submit(self, *arguments):
        (
            self.executor
                .submit(self.work_callable, *arguments)
                .add_done_callback(self.work_done)
        )
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Code: Alles auswählen

class ProcessingStep(object):
    # ...
    def submit(self, *arguments):
        (
            self.executor
                .submit(self.work_callable, *arguments)
                .add_done_callback(self.work_done)
        )
entspricht

Code: Alles auswählen

class ProcessingStep(object):
    # ...
    def submit(self, *arguments):
        self.executor \
            .submit(self.work_callable, *arguments) \
            .add_done_callback(self.work_done)
oder

Code: Alles auswählen

class ProcessingStep(object):
    # ...
    def submit(self, *arguments):
        self.executor.submit(self.work_callable, *arguments).add_done_callback(self.work_done)
Kurzum: BlackJack will einen Ausdruck ueber mehrere Zeilen verteilen und benutzt dazu die Tatsache, dass der Parser in Klammern ueber Zeilengrenzen hinweg liest.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Danke. Hat also nichts mit Tupeln zu tun... :D

Man könnte dasselbe auch so schreiben, richtig?

Code: Alles auswählen

class ProcessingStep(object):
    # ...
    def submit(self, *arguments):
        future = self.executor.submit(self.work_callable, *arguments)
        future.add_done_callback(self.work_done)
Nachtrag: Wofür brauche ich `__enter__` und `__exit__`? Sind die `object`-spezifisch? Danke!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

droptix hat geschrieben:Nachtrag: Wofür brauche ich `__enter__` und `__exit__`? Sind die `object`-spezifisch? Danke!
Für das with-Statement.
Das Leben ist wie ein Tennisball.
Antworten