인스턴스로부터 클래스 이름 찾기

조회수 5493회

파이썬에서 인스턴스의 클래스 이름을 알아내는 방법 없을까요 inspect모듈을 쓰면 될 줄 알았는데 찾아봐도 없어요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    __name__ 을 쓰세요. __name__은 클래스/타입의 이름을 저장하고 있습니다.

    #예제를 위한 class
    class myClassName(object):
        pass
    x = myClassName()
    

    과 같이 있다고 할 때 instance x를 통해서 "myClassName"을 알아내고 싶으신거죠?

    #new style인 경우 - type(x).__name__사용
    print "----for new style---"
    print "x:\t\t\t\t\t", x
    print "type(x):\t\t\t", type(x)
    print "type(x).__name__:\t",type(x).__name__
    
    #old style인 경우 - x.__class__.__name__사용
    print"\n---for old style---"
    print "x.__class__.__name__:", x.__class__.__name__```
    

    결과)

    ----for new style---
    x:                  <__main__.myClassName object at 0x10171c710>
    type(x):            <class '__main__.myClassName'>
    type(x).__name__:   myClassName
    
    ---for old style---
    x.__class__.__name__: myClassName
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)