weird try/finally behaviour

Sylvain Thénault sylvain.thenault at logilab.fr
Fri Apr 10 07:49:51 EDT 2009


Hi there,

I've encountered the following behaviour which I found surprising:

>>> def test():
...     for x in ('test', 'tests'):
...          try:
...             if True:
...                   print 'return'
...                   return 1
...          finally:
...             print 'break'
...             break
...     print 'end'
... 
>>> 
>>> test()
return
break
end

As you can see, the 'break' in the finally block makes the 'return 1' beeing ignored.
Is this a known caveat or should it be considered as a bug?
-- 
Sylvain Thénault                               LOGILAB, Paris (France)
Formations Python, Debian, Méth. Agiles: http://www.logilab.fr/formations
Développement logiciel sur mesure:       http://www.logilab.fr/services
CubicWeb, the semantic web framework:    http://www.cubicweb.org




More information about the Python-list mailing list