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