내 응용 프로그램에 많은 상수 변수가 있습니다. 이 응용 프로그램에서는 모듈을 가져옵니다. 테스트의 일환으로 변수의 이름과 값을 출력하는 가져온 모듈의 함수를 호출하고 싶습니다.모듈의 변수 값 인쇄
확인 그래서 이것은 내 코드가 아닙니다 그러나 이것은 내가하고 싶은 일의 개념을 보여줍니다
-main.py-
import mymodule
DEBUG = True
BATCH = False
ShowVars(['DEBUG','BATCH'])
-mymodule.py-
def ShowVars(varlist):
for name in varlist:
print('{} -> {}').format(name,eval(name))
내가 평가 (이름)에서 오류 얻을 물론 'DEBUG가 정의되지 않은'것을을 그러나 나는이 개념을 작동 시키려고 노력하고있다. 내가 찾은
한 가지 방법으로 main.py 변경하는 것입니다 :
-main.py-
import mymodule
DEBUG = True
BATCH = False
mymodule.DEBUG=DEBUG
mymodule.BATCH=BATCH
ShowVars(['DEBUG','BATCH'])
가 그런 사물이 작동하지만 난 어떤 아이디어 나 일화 주시면 감사하겠습니다 ... 나는 그것을 좋아하지 모르겠어요.
왜'traceback.extract_stack()'을 사용합니까? 'sys._getframe (1)'또는'inspect.currentframe(). f_back'만큼 충분하지 않습니까? – falsetru
스택의 깊이를 알려주는 데 사용합니다. 이 예제에서는 깊이가 1이므로 (sys._getframe (1) 또는 inspect이므로) 작동합니다.currentframe(). f_back)으로 충분하다. 그러나 이것은 실제 적용에서 항상 전화의 깊이를 알 수는 없습니다. –
그것은 이해가되지 않습니다. http://ideone.com/DcDF2J – falsetru