Я пытаюсь написать код с использованием функций exec и eval для чтения списков переменных из файла numpy .npz.
Когда я запускал код, не определяя его как функцию def, код работал,Однако, когда я запустил код как функцию, т.е. read_file_npz ("file_address"), python 3.7 продолжал всплывать сообщение о том, что templet_1h не был определен.
def read_file_npz(file_names_2):
import numpy as np
Delete_elements=["arr_0"]
evaluate_1= "templet_1h=np.load(\"./" +file_names_2+ ".npz\")";
exec(evaluate_1)
for i in (templet_1h.files):
if not ( (i in Delete_elements) ):
evaluate_2="global "+i;
exec(evaluate_2)
evaluate_2= i+"="+"templet_1h[\"" + i + "\"]";
exec(evaluate_2)
Что не так с предупреждением и как его изменить?
Я пытался объявить templet_1h перед кодом в виде list (), но затем предупреждение стало .files не было ..к спискам, как если бы метод оценки_1 никогда не выполнялся.