Python не распознает все глобальные переменные [закрыто]Python

Программы на Python
Anonymous
Python не распознает все глобальные переменные [закрыто]

Сообщение Anonymous »

Об этом уже спрашивали, но примеры не соответствуют этому простому варианту использования.
Module One.py

Код: Выделить всё

varname = 'var'
var = 0
Модуль второй.py

Код: Выделить всё

from One import *

def checkname():
if (varname == 'not var'):
print ('not var')
print (var)
Когда я запускаю это, я получаю сообщение об ошибке при печати строки (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

Вернуться в «Python»