когда нам нужно указать тип данных в функции exe c ()? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть фрагмент кода, в котором используется функция python exe c (). данные сохраняются в виде массива в файле, и при использовании exe c () тип данных указывается как словарь. Я не могу перестать понимать, что получается

style = dict()
# test.py includes one 10 x 10 array 
with open('test.py')as output:
    exec(output.read(), style)

1 Ответ

0 голосов
/ 09 июля 2020

Поскольку вы передаете пустой dict() в качестве аргумента globals для exec() output, он не будет определен при выполнении output.read(). Если вам нужно распечатать результат output.read(), вам нужно передать globals() или locals() в качестве второго аргумента exec. Они возвращают словарь, содержащий объекты, доступные в глобальной и локальной области соответственно. Новый код может быть:

style = dict()
with open('test.py') as output:
    exec("print(output.read())", globals())

или

style = dict()
with open('test.py') as output:
    exec("print(output.read())", locals())

Возвращаемое значение из инструкции exe c - None, поэтому вам нужно использовать print, чтобы увидеть вывод * 1017. *

...