Список ввода не определен при запуске кода с помощью exec из функции [дубликат]Python

Программы на Python
Anonymous
Список ввода не определен при запуске кода с помощью exec из функции [дубликат]

Сообщение Anonymous »

Может кто-нибудь помочь мне понять, почему следующий код не работает?

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

def foo(code):
exec(code)

if __name__ == "__main__":
code = R"""
from typing import List
class Test:
def __init__(a: List):
pass
"""
foo(code)
# exec(code)  # this works
Я использую Python 3.9.19 в MacOS.
Кроме того, следующие изменения позволяют этому примеру работать:
  • Замена List на list
  • выполнение exec(code) перед foo
  • передача globals() как локальных переменных для выполнения
  • изменение кода на:

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

code = R"""
from typing import List
def boo(a: List):
pass
"""
Я ожидал, что исходный код запустится без ошибок.

Подробнее здесь: https://stackoverflow.com/questions/788 ... a-function

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