2016-09-10 1 views
1

파이썬 클래스에서 인스턴스화하는 클래스 또는 모듈의 이름 (또는 다른 식별자)을 볼 수 있습니까? 예를 들어Python 모듈이 클래스를 인스턴스화 한 것을 보시나요?

: main.py 실행

# mymodule.py 

class MyClass(): 
    def __init__(self): 
     print(instantised_by) 

#main.py 

from mymodule import MyClass 

instance = MyClass() 

인쇄한다 : 그런

main 

또는 뭔가.

이것이 가능합니까?

답변

0

inspect으로 스택 정보를 검사하여 __init__에서 호출자 스택을 얻을 수 있습니다 (단지 함수라는 것을 기억하십시오). 그로부터 발신자 함수 이름, 모듈 이름 등과 같은 정보를 얻을 수 있습니다.

이 질문보기 : Get __name__ of calling function's module in Python. traceback 모듈

0

:

import traceback 

class MyClass(): 
    def __init__(self): 
     file,line,w1,w2 = traceback.extract_stack()[1] 
     print(w1) 
+0

이 인쇄됩니다은'main.py''에서 실행 때'main'를 인쇄 –

+0

싫다을 __init__'. 시험 해봐. –

관련 문제