3 ms·
Not mistaken. The try..except creates a scope. It is not always, but often, that I need to address this new nested scope when structuring exception handling whe
by R0b0t1 5y ago
Not mistaken. The try..except creates a scope. It is not always, but often, that I need to address this new nested scope when structuring exception handling when I could simply not if exceptions were not used.
- formerly_proven 5y agoYou are mistaken. try...except does not introduce a scope in Python. Only "def" and "class" do.
- kdmccormick 5y agoYup. try: x = uncertain_op() except ...: x = 'fallback' do_something(x) is a common Python idiom; no initial definition required. Although this isn't true in every language.
- R0b0t1 5y agoHm, I suppose you're right. I just tested it. I can't for the life of me remember what I was thinking of then.
- formerly_proven 5y agoIn many (most?) other languages compounds / blocks always introduce a scope. E.g. in C++ (or Java) try { /* new scope */ } catch (FooException &foo) { /* another scope */ } Python is probably one of not that many languages where this is not the case.