Module One.py
Код: Выделить всё
varname = 'var'
var = 0
Код: Выделить всё
from One import *
def checkname():
if (varname == 'not var'):
print ('not var')
print (var)
UnboundLocalError: невозможно получить доступ к локальной переменной «var», где ее нет связано со значением
Поэтому глобальное имя varname распознается и используется, но глобальное имя var не используется и вместо этого кажется локальной переменной.
Если я выполню print(globals()), я увижу, что и varname, и var отображаются как глобальные переменные.
Если второй модуль изменен на
Код: Выделить всё
from One import *
def checkname():
global var
if (varname == 'not var'):
print ('not var')
print (var)
глобальным именем переменной, var
Почему он разрешил использование имени переменной, не объявляя его глобальным, но не позволял использовать var?< /п>
Подробнее здесь: https://stackoverflow.com/questions/790 ... -variables