Рассмотрим следующий пример:
with open('a.txt') as f:
pass
# Is f supposed to be defined here?
Я прочитал языковую документацию (2.7) для оператора with, а также PEP-343, но, насколько я могу судить, они ничего не говорят по этому поводу.
В CPython 2.6.5 fкажется, что он определен вне блока with, но я бы предпочел не полагаться на детали реализации, которые могут измениться.