2 Stimmen

Eclipse+Pydev: "cleanup"-Funktionen werden beim Drücken von "stop" nicht aufgerufen"?

Ich versuche, diese Datei in Eclipse auszuführen

class Try:
   def __init__(self):
       pass
   def __del__(self):
       print 1
a=Try()
raw_input('waiting to finish')

und wenn ich die Stopptaste drücke, ohne das Programm beenden zu lassen, wird keine "1" gedruckt, d.h. die del-Methode wird nie aufgerufen. Wenn ich versuche, das Skript in der Shell auszuführen und ctrl-c \sys.exit "1" wird gedruckt, d.h. del wird aufgerufen. Dasselbe geschieht, wenn ich versuche, wait() zu verwenden:

class A:

    def __enter__(self):
        return None
    def __exit__(self, type, value, traceback):
        print 3

with A():
    print 1
    raw_input('Waiting')
    print 2

Wenn ich bei der Aufforderung "Stopp" drücke, wird die "3" nicht gedruckt.

Warum ist das so? Gibt es eine Möglichkeit, dies zu umgehen?

Danke, Noam

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X