Python에서는 “여러 값을 반환할 때” 튜플이 되는 구조
하지만 정확히는 “튜플로 주는”게 아니라 “쉼표가 튜플을 만드는 것”
핵심부터 짚으면, Python에서 튜플을 만드는 것 괄호가 아니라 쉼표(,):
t = 1, 2, 3 # 괄호 없어도 튜플 -> (1, 2, 3)
type(t) # tuple
그래서 함수에서 여러 값을 쉼표로 반환하면:
def f():
return 1, 2 # 쉼표 -> 자동으로 튜플 (1, 2)
f() # (1, 2)
그러면 왜 list가 아닌 tuple인가?
반환값은 “고정된 묶음”이라 불변이 적합
def get_user():
return "kim", 30 # (이름, 나이) - 이 묶음 구조는 바뀔 일이 없음
“이름과 나이 2개를 반환한다”는 구조가 고정
만약 여기서 .append() 로 값을 더 끼워넣으면 오히려 문제
성능 - 더 가볍고 빠름
튜플은 크기가 고정이라 list보다 메모리 적게 쓰고 생성도 빠름
함수 반환은 수없이 일어나는 동작이라, 가벼운 튜플이 유리
언패킹이 자연스러움
반환을 튜플로 하면 받는 쪽에서 바로 풀어쓸 수 있음
def get_user():
return "kim", 30
name, age = get_user() # 튜플 언패킹 -> name="kim", age=30
이게 Python에서 다중 반환을 쓰는 흔한 패턴