본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 12. named tuple

출처 : 윤성우의 열혈 파이썬 : 중급

12. named tuple

named tuple의 이해와 작성

tri_one = (12, 15)
print(tri_one)      # (12, 15)

from collections import namedtuple
Tri = namedtuple('Triangle', ['bottom', 'height'])
t = Tri(3, 7)       # named tuple 객체 생성
print(t[0], t[1])   # 일반 tuple과 동일한 방법으로 접근 가능
print(t, bottom, t.height)  # 이름으로도 접근 가능

t[0] = 15   # error
  • 튜플 성격을 갖는 클래스
  • 기본 골격은 튜플이나 일반 튜플과 달리 위치별로 이름을 갖는다는 특징
  • 객체 이름은 객체 생성에 사용되지 않는다
  • 이름은 오류가 발생했을 때 오류의 원인을 찾는 데 도움이 된다
  • 튜플과 마찬가지로 저장된 값을 수정하지 못한다
Tri = namedtuple('Tri', 'bottom height')
  • 변수와 클래스의 이름을 같게 하여 불필요한 혼동을 줄일 수 있다
  • 네이드 튜플의 이름을 지정할 때 리스트에 담아서 전달하지 않고 하나의 문자열에 담아서 저장해도 된다

named tuple unpacking

t = Tri(12, 79)
a, b = t
print(a, b)     # 12, 79

def show(n1, n2):
    print(n1, n2)

t = Tri(3, 8)
show(*t)        # 3, 8