# https://docs.python.org/3/library/traceback.html?highlight=traceback
-----------------------------------------------------------
import traceback

class foo():
    def boo(self):
        # 전체 stack trace 출력
        stack = traceback.extract_stack()
        for k in stack:
            print(k)

        # 시작라인 None, 출력라인수 -> 마지막한줄을 의미한다.
        stack = traceback.extract_stack(None, 1)
        # boo <- 출력
        print(stack[0][2])


# https://docs.python.org/3/library/inspect.html?highlight=inspect
-----------------------------------------------------------
import inspect


class foo():
    def boo(self):
        # 전체 stack trace 출력
        stack = inspect.stack()
        for k in stack:
            print(k)
        
        # boo <- 출력
        print(inspect.stack()[0][3])


# 모듈의 파일위치 확인
import random

print(inspect.getfile(random))
C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\random.py

위 class 분석하여 호출파일 class, function 알아낼수 있다.