[Effective Python] | September 15, 2020
Effective Python: Second Edition 내용 정리
Unpacking syntax (Item 6)는 함수가 한 개 이상의 return 값을 가질 수 있도록 한다.
Multiple values가 tuple에 담겨서 같이 return 되고, 그 tuple을 여러 개의 변수로 unpacking 하기 때문이다.
def get_min_max(nums):
minimum = min(nums)
maximum = max(nums)
return minimum, maximum
nums = [10, 30, 1, 3]
minimum, maximum = get_min_max(nums)
minimum, maximum
>>> (1, 30)
return 값이 하나인 경우에도, 별표 expressions(Item 13)를 활용해서 unpacking 할 수 있다.
def sorted_list(nums):
nums.sort()
return nums
nums = [10, 30, 1, 3]
minimum, *middle, maximum = sorted_list(nums)
minimum, middle, maximum
>>> (1, [3, 10], 30)
➡ unpacking 할 때 catch-all starred expression을 포함한 최대 3개까지만 unpacking 하라.
➡ 4개 이상 unpacking 해야 할 때는 lightweight class(small class)를 return하거나, namedtuple(Item 37) instance를 return할 수 있도록 하라.