Hello python-list, following is what I did Python 2.0 (#2, Mar 12 2001, 21:40:11) [GCC 2.95.2 19991024 (release)] on sunos5 Type "copyright", "credits" or "license" for more information. >>> class c1: ... def __init__(self): ... print "constructed " + `id(self)` ... def __del__(self): ... print "destructed " + `id(self)` ... >>> def f(): ... c1i = c1() ... print "in f" ... raise KeyError ... >>> f() constructed 1605572 in f Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 4, in f KeyError >>> c1i destructed 1605572 Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: There is no variable named 'c1i' >>> def f1(): ... c1i = c1() ... print "in f" ... >>> f1() constructed 1605572 in f destructed 1605572 in f(),c1i is constructed correctly but after raise the exception(any exception),python didn't call c1i's destructor,in f1(),the behavior is just normal,destructor is called after f1() returns.anyone tell me why this happen,is this a bug or just a feature? Best regards, javalist mailto:javalist at 21cn.com
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4