Die verrückte __init__-Methode, die mich fast in den Wahnsinn trieb
2025-04-19
Ein Python-Servicetest schlug gelegentlich fehl aufgrund einer bizarren __init__-Methode. Die Klasse FooBarWidget startet in ihrer __init__-Methode einen neuen Thread, um die __init__- und run-Methoden der Elternklasse FooWidget auszuführen. Dieses Design versucht, eine Blockierung des Hauptthreads zu vermeiden, da zmq.Socket-Objekte nicht zwischen Threads verschoben werden können. Wenn man jedoch eine FooBarWidget-Instanz zu früh schließt, kann der __init__ von FooWidget unvollendet bleiben, was zu einem fehlenden 'should_exit'-Attribut und einem Fehler führt. Dieser humorvolle Bericht beschreibt die Debugging-Erfahrung und untersucht die Logik hinter diesem unkonventionellen Design.
Entwicklung