Я пытаюсь запустить следующий файл в Python 3.7:
Имя файла: mytest.py Содержание:
def test():
exec("x=2")
exec("if x==2: print('yes')")
exec("[l for l in [1,2,3] if l==x]")
if __name__ == "__main__":
test()
Когда я запускаю команду:
python3mytest.py
первые две строки test () работают нормально.Но в третьей строке выдается следующая ошибка:
NameError: имя 'x' не определено
Ошибка не возникает, если я запускаю содержимое test () непосредственно в оболочке Python илипоместите содержимое test () внутри main .
Обратите внимание, что в моем реальном коде я не знаю заранее имен переменных l и x или кода, который требуется внутри exec,Это просто упрощенный пример.