eval
을 사용하여 파일에서 객체를로드하려고합니다. 유효한 파이썬 표현식이되도록 그 객체는 파일에 덤프 - 모든 유형이 자신의 FQDN과 함께 제공됩니다, 같은 : 나는 eval
에이 공급되면자동으로 필요한 모듈을 eval (...)로 가져옵니다.
mod1.Class1(
attr1=mod2.Class2(a=1,b=2),
attr2=[1,2,3,4],
attr3=mod1.submod1.Class3(),
)
는, 그 모든 모듈이 수입되어 있지 범위가 eval
인데 최상위 모듈의 경우 NameError: name 'mod1' is not defined
이거나 가져올 때 서브 모듈의 경우 AttributeError: 'module' object has not attribute 'submod1'
입니다.
어떻게 처리 할 수 있습니까? 나는 NameError
을 구문 분석 __import__
을 실행하고 eval
을-하려고 다시,하지만 난 AttributeError
에서 무엇이 잘못되었는지 얻는 방법을 딱하다 수 있습니다.
나는 compile
의 표현이 필요하다 무엇이든 AST 및 가져 오기를 걸어 공급 수 있을까요? 어쨌든 대서양과 함께 일한 적이 없습니까?
참고 여기 보안에 대한 하지 관심이 있습니다.
데이터를 사람이 읽을 수 있고 손쉽게 수정할 수 있어야합니다. 그래서 절임이 끝났어. 값은 너무 많이 제어되지 않으며 주 패키지에는 여러 수준에서 너무 많은 하위 모듈이 있습니다. – eudoxos