このファイルをEclipseで実行しようとしています
class Try:
def __init__(self):
pass
def __del__(self):
print 1
a=Try()
raw_input('waiting to finish')
プログラムを終了させずに停止ボタンを押しても「1」は出力されません。つまり、delメソッドが呼び出されることはありません。シェルからスクリプトを実行してctrl-c\sys.exitを実行しようとすると、「1」が出力されます。つまり、delが呼び出されます。wait()を使おうとすると同じことです:
class A:
def __enter__(self):
return None
def __exit__(self, type, value, traceback):
print 3
with A():
print 1
raw_input('Waiting')
print 2
プロンプトが表示されたら「停止」を押すと、「3」が印刷されません
何故ですか?それを回避する方法はありますか?
ありがとう、ノアム