[Python] 호출한 함수명 가져오기

조예진·2022년 7월 20일
1
post-thumbnail
post-custom-banner

원인

Error 로그를 쌓으려고 하는데
해당 Error가 발생된 지점(함수명)도 함께 쌓고 싶었다.

근데 현재 호출 함수명을 모든 error 지점마다 끼워줘야했고,
그때마다 하드코딩으로 함수명을 적어주는건 너무나 비효율적...

그리고 귀찮아...

그래서 현재 호출 함수명을 반환해주는 공통함수를 만들었는데
문제가 생겼다.

공통으로 뽑고 호출하다보니까
당연히 저 값을 반환하는 공통 함수명을 반환했다.

1. 현재 호출하는 함수명 반환하는 함수

import inspect

def get_current_function():
	return inspect.currentframe().f_code.co_name

위 함수에서 아래와 같이 수정했더니
해당 함수를 호출하는 함수명을 가져왔다!

2. 현재 호출하는 상위 함수명을 반환하는 함수

import sys
def get_current_function():
    return sys._getframe(1).f_code.co_name

getframe(1)은 해당 함수의 상위 함수를 가져온다는 거고
inspect.currentframe().f_code.co_name은 해당 함수명을 가져오겠다는 뜻이다.

profile
블로그 이전 중 -> https://devjooj.tistory.com/
post-custom-banner

0개의 댓글