2008-09-03 6 views
7

파이썬에서 몇 가지 반성을 할 했어 그것은 꽤 아니었다 :파이썬에서 어떻게 monkeypatching합니까?

name = sys._getframe(1).f_code 
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name) 

우리의 디버깅 출력에서 ​​

foo.py:22 bar() blah blah 

같은 것을 얻을 수 있습니다.

나는이 정보를 stderr 앞에 추가하는 것이 이상적이다. 파이썬에서 전역으로 인쇄 동작을 변경할 수 있습니까?

답변

3

print 문은 "sys.stdout.write"를 통해 IO를 처리하므로 인쇄 스트림을 조작하려는 경우 sys.stdout을 재정의 할 수 있습니다.

1

파이썬 inspect 모듈을 사용하면 훨씬 쉽고 깨끗하게 처리 할 수 ​​있습니다.

관련 문제