2010-01-03 7 views
0
__builtins__ __builtins__이 설정되어 있고 함수 전역에 액세스하려고하면이 오류가 발생합니다.

파이썬의 '제한 실행 모드'란 무엇입니까?

>>> def f(): pass 
... 
>>> f.func_globals 
{'f': <function f at 0x00B83270>, '__builtins__': <module '__builtin__' (built-in)>} 
>>> __builtins__ = {} 
>>> f.func_globals 
Traceback (most recent call last): 
    File "<string>", line 1, in <string> 
RuntimeError: restricted attribute 
>>> 

왜 더 자세히 읽을 수 있습니까? 표현 평가를 보호하기 위해 그것을 사용할 수 있습니까?

질문보기 : How safe is expression evaluation using eval?

답변

3

아아, 긴 사용되지 않는 개념을 참조 the docs - 원래 아이디어는 안전/샌드 박스 모드를 제공했지만, 그냥 밖으로 이동하지 않았고 이후 포기하고 사용되지 않습니다 2.3.

+0

감사합니다. '제한된 속성'이 표시되어 여전히 작동합니다 (Python 2.5.1). –

+0

지원되지 않지만 버려지고 지원되지 않지만 화석 흔적이 남았습니다. 물론 :-(. –