python 에서 현재 실행 함수 이름 을 가 져 오 는 방법 인 스 턴 스 코드

1968 단어 python실행 함수
python 에서 현재 실행 함수 이름 을 가 져 오 는 방법 인 스 턴 스 코드
요약:c/c++에서 함수 가 있 는 소스 이름,함수 이름과 줄 번 호 를 얻 는 방법 은 간단 합 니 다FILE__,__FUNCTION__와LINE__ python 은 이러한 문법 이 없 지만 어떤 방법 으로 도 얻 을 수 있 습 니 다.여기 서 예 를 들 어 이상 정 보 를 사용 하여[성능 을 잃 을 수 있 습 니 다]
직접 코드 붙 이기[python 핵심 프로 그래 밍 4.4 참조]
\#이 함수 가 있 는 함수 이름 가 져 오기

#author:[email protected] 
def get_func_name():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()                             #       ,  ,traceback  
    traceObj = exc_info[2]                               #traceback  
    frameObj = traceObj.tb_frame                         #  frame  ,     frame  
    #print frameObj.f_code.co_name,frameObj.f_lineno         #           
    Upframe = frameObj.f_back                           #       frame  ,         frame
    #print Upframe.f_code.co_name, Upframe.f_lineno          #           
    return (Upframe.f_code.co_name, Upframe.f_lineno)[0]      #    
    

파일 이름 경로,함수 이름,줄 번호 가 져 오기
------------------------------------------------------------------------------

def getCurRunPosInfo():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()    
    traceObj = exc_info[2]   
    frameObj = traceObj.tb_frame 
    #print frameObj.f_code.co_name,frameObj.f_lineno
    Upframe = frameObj.f_back            
    #print Upframe.f_code.co_name, Upframe.f_lineno 
    return (Upframe.f_code.co_filename, Upframe.f_code.co_name, Upframe.f_lineno)

#    
def test1():
  print getCurRunPosInfo()

def test2():
  print get_func_name()
  
  :
>>('demo.py', 'test1', 44)
>>test2

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기