Нет необходимости объявлять переменную перед определением для g()
:
>>> def f():
... def g():
... print myvar
... myvar = 1
... g()
...
>>> f()
1
Однако, если вы можете избежать ссылки на нелокальные переменные в g()
, это было бы предпочтительным, что вывероятно, здесь можно сделать, если myvar
будет параметром g()
.