Page 17 -
P. 17
Better way 19 함수가 여러 값을 반환하는 경우 절대로
네 값 이상을 언패킹하지 말라
언패킹 구문의 한 가지 효과(Better way 6: ‘인덱스를 사용하는 대신에 대
입을 사용해 데이터를 언패킹하라’ 참고)는 언패킹을 사용하면 함수가 둘 이
상의 값을 반환할 수 있다는 것이다. 예를 들어 악어 개체군에 대한 여러 통
계를 계산한다고 하자. 악어의 몸 길이 정보를 담은 list를 이용해 개체군에
서 가장 긴 악어와 가장 짧은 악어의 몸 길이를 계산해야 한다. 다음은 두 값
을 반환하는 것처럼 보이는 함수다.
def get_stats(numbers):
minimum = min(numbers)
maximum = max(numbers)
return minimum, maximum
lengths = [63, 73, 72, 60, 67, 66, 71, 61, 72, 70]
minimum, maximum = get_stats(lengths) # 반환 값이 두 개
print(f'최소: {minimum}, 최대: {maximum}')
>>>
최소: 60, 최대: 73
이 코드는 원소가 두 개인 튜플에 여러 값을 넣어서 함께 반환하는 식으로 작
동한다. 이 함수를 호출한 코드는 반환받은 튜플을 두 변수에 대입해서 언패
킹한다. 다음 코드는 언패킹 문과 여러 값을 반환하는 함수가 어떻게 같은 방
식으로 작동하는지 보여주는 더 간단한 예다.
first, second = 1, 2
assert first == 1
assert second == 2
def my_function():
134
파이썬 코딩의 기술_06.indd 134 2020-10-20 오후 2:53:01