급질문) 파이썬 제너레이터가 안됩니다.
글쓴이: smreo / 작성시간: 수, 2019/09/25 - 2:02오후
트랜잭션의 흐름이 현재 어느 모듈, 어느 함수, 소스의 몇 번째 행을 돌고 있는지 알고 싶어서 아래와 같이 했습니다.
/usr/lib/python3.6/pfFunc.py
import inspect def FrameDecor(func): def decorated(): callerframerecord = inspect.stack()[1] # 0 represents this line # 1 represents line at caller frame = callerframerecord[0] info = inspect.getframeinfo(frame) print (" ==> in <<", info.filename, ">> Line:",info.lineno, " Func:", info.function) func() # original function print (" ==> out <<", info.filename, ">> Line:",info.lineno, " Func:", info.function) return decorated
그리고 테스트를 아래와 같이 했습니다.
import pfFunc @FrameDecor def message1() : print("--- Generator Test --- ") message1()
그러면 결과가 이렇게 나옵니다.
Traceback (most recent call last):
File "testF.py", line 6, in
@FrameDecor
NameError: name 'FrameDecor' is not defined
pfFunc를 호출하지 않고 모듈 내에서는 잘 됩니다. 왜 이럴까요? 도와 주세요.
읽어주셔서 감사합니다. 끝.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 644바이트 |
![]() | 182바이트 |
Forums:
@pfFunc.FrameDecor
@pfFunc.FrameDecor
됩니다. 감사합니다.
2년 전에도 같은 짓거리를 했었는데..., 그땐 이렇게 애먹지 않았는데요.
덕분에 데코레이터로 클래스까지 만들어 놨습니다.
근데 갑자기 환경이 윈도우즈로 바뀌네요. -.-
댓글 달기