Python

display class instance name & print class

guruzoa 2012. 7. 13. 12:17

파이썬 Class 공부중 1

Class 생성 후 Instance가 어떤 Class의 인스턴스인지 확인하고 싶은 때랑 print instance 하면 어떤 메시지나 특정 동작을 수행하고 싶을 때 하는 일

simpleClass.py

class simpleClass:
    pass

class simpleClass2:
    def __repr__(self):
        return "%s" % self.__class__.__name__
    def __str__(self):
        return "%s, %s" % (self.__class__.__name__, "print")

일반적인 경우

>>> from simpleClass import *
>>> A = simpleClass
>>> A
<class simpleClass.simpleClass at 0x2b363fe524c8>
>>> print A
simpleClass.simpleClass
>>> A = simpleClass()
>>> A
<simpleClass.simpleClass instance at 0x2b363feb0998>
>>> print A
<simpleClass.simpleClass instance at 0x2b363feb0998>

__repr__과 __str__을 추가했을 경우

>>> from simpleClass import *
>>> B = simpleClass2
>>> B
<class simpleClass.simpleClass2 at 0x2b363fe52530>
>>> print B
simpleClass.simpleClass2
>>> B = simpleClass2()
>>> B
simpleClass2
>>> print B
simpleClass2, print


하다가 갑자기 생긴 궁금점 1. Instance를 생성할 때 Class 뒤에 () 추가하고 안하고의 차이가 뭐지?

Ref. 1 : http://stackoverflow.com/questions/1535327/python-how-to-print-a-class-or-objects-of-class-using-print

Ref. 2 : http://stackoverflow.com/questions/1535327/python-how-to-print-a-class-or-objects-of-class-using-print