typename의 이름을 가진 새로운 튜플 서브 클래스를 반환.
field_names로 각 데이터의 위치에 대한 label을 지정할 수 있다. 이때 리스트 형태나 띄어쓰기 or 쉼표로 구분된 문자열이 사용 가능하다.
rename은 True시 field_name에 포함된 예약어, 중복된 이름을 자동으로 _1,_2, ... 형태로 변경한다. 아닐 시 오류발생.
default는 말 그대로 기본값을 정의. 오른쪽에 맞춰서 적용된다.
field_name이 ['x', 'y', 'z'] 이고 default가 (2,3) 이면 x는 필수, y,z는 default로 2,3이 적용된다.
module은 해당 튜플의 __module__에 입력받은 값을 저장해준다. 해당 모듈에서 해당 namedtuple이 정의됨을 알려주기 위한 장치.
from collections import namedtuple
Grade = namedtuple('Grade', ['subject','grade'],defaults=['F'])
john = Grade('math',grade = 'A')
print(john[0],john[1])
#math A
#index로 접근 가능
g = ('english','B')
doe = Grade._make(g)
print(doe.subject,doe.grade)
#english B
#key값으로도 접근 가능
print(john._asdict())
#{'subject': 'math', 'grade': 'A'}
john = john._replace(grade='A+')
print(john[0],john[1])
#math A+
print(Grade._fields)
#('subject', 'grade')
print(Grade._field_defaults)
#{'grade': 'F'}