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


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

  • 2016년 01월 07일에 작성됨

조회수 221


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
  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close