<__main__.Person object at 0x13d6e7ac8>
from collections import namedtuple
## typename은 만들어진 객체의 타입을 말합니다.
## filed_names는 내부 attribute를 말합니다.
## 그냥 아래처럼 ',' 이나 ' ' 로 구분해주면 알아서 다른 놈으로 인식합니다.
## verbose를 True로 세팅하면, 어떤 클래스가 만들어졌는지를 출력합니다.
Person = namedtuple(typename='Person', field_names='name, age gender', verbose=False)
p1 = Person('lee', 25, 'male')
p2 = Person('lim', 22, 'female')
## 따로 __repr__ 를 정의해주지 않았는데 다음처럼 잘 출력해주고
print(p1)
## 내부 attribute에 인덱싱하는 것도 dictionary에 비하면 참 쉽고
print(p1.name)
## 딕셔너리로 변환하는 것도 쉽죠.
print(p1._asdict())
Person(name='lee', age=25, gender='male')
lee
OrderedDict([('name', 'lee'), ('age', 25), ('gender', 'male')])
dict1 = {'name':'lee',
'age':25,
'gender':'female'
}
## 그냥 type_name만 정해주고, dictionary를 그대로 넘겨주니까 알아서 잘 되네요 하하핳
Person_by_dict = namedtuple('Person', dict1)
p11 = Person_by_dict('lee', 25, 'male')
print(p11)
Person(name='lee', age=25, gender='male')
댓글남기기