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

파이썬에서 인스턴스의 클래스 이름을 알아내는 방법 없을까요 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
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.