다음과 같은 class 가 있다.

class my_type():
	def __init__(self, id):
		self.type_id = id
		self.type_name = 'empty'

위의 class 의 member 데이터를 print 함수로 출력하고자 한다면?

__str__() 함수를 구현하면 된다.

class my_type():
	def __init__(self, id):
		self.type_id = id
		self.type_name = 'empty'

	def __str__(self):
		return '[ type_id: {0}, type_name: {1} ]'.format(self.type_id, self.type_name)

my_type 객체를 dictionary 나 list 에 넣어두고선 print 함수로 dictionary 나 list 출력하면 다음과 같다.

{1: <__main__.my_type instance at 0x7fc67efbdcf8>, 2: <__main__.my_type instance at 0x7fc67efbdd40>}
[<__main__.my_type instance at 0x7fc67efbdd88>, <__main__.my_type instance at 0x7fc67efbddd0>]

dictionary 나 list 내부에 있는 class 데이터를 출력하려면?

__repr__() 를 구현한다.

class my_type():
	def __init__(self, id):
		self.type_id = id
		self.type_name = 'empty'

	def __str__(self):
		return '[ type_id: {0}, type_name: {1} ]'.format(self.type_id, self.type_name)
	
	def __repr__(self):
		return self.__str__() + '\n'


if __name__ == "__main__":
	t = my_type(0)
	print t

	dic = {}
	dic[1] = my_type(1)
	dic[2] = my_type(2)
	print dic
	
	l = []
	l.append(my_type(3))
	l.append(my_type(4))
	print l

만약 class 데이터마다 라인별로 끊어서 출력하고자 한다면 '\n' 을 붙여준다.

위의 결과는 다음과 같다.

[ type_id: 0, type_name: empty ]
{1: [ type_id: 1, type_name: empty ]
, 2: [ type_id: 2, type_name: empty ]
}
[[ type_id: 3, type_name: empty ]
, [ type_id: 4, type_name: empty ]
]


참고:


Posted by 집시F