- [BW 19] 함수가 여러 값을 반환하는 경우 절대로 네 값 이상을 언패킹하지 말라2024년 10월 22일
- 31514
- 작성자
- 2024.10.22.:12
lengths = [63, 73, 72, 60, 67, 66, 71, 61, 72, 70] def get_stats(numbers): mini = min(numbers) maxi = max(numbers) count = len(numbers) average = sum(numbers) / count sorted_numbers = sorted(numbers) middle = count // 2 if count % 2 == 0: lower = sorted_numbers[middle - 1] upper = sorted_numbers[middle] median = (lower + upper) / 2 else: median = sorted_numbers[middle] return mini, maxi, average, median, count mini, maxi, average, median, count = get_stats(lengths)
위 코드에는 두 가지 문제가 있다.
- 모든 변환 값이 수이기 때문에 순서를 혼동하기 쉽다.
- 가독성이 나빠진다.
이런 문제를 해결하기 위해 2가지 방법이 존재한다.
- 함수가 여러 값을 반환하거나 언패킹할 때 값이나 변수를 3개까지만 허용한다.
- 작은 클래스를 반환하거나 namedtuple 인스턴스를 반환해야 한다. [BW 37] 참고
'Book > 파이썬 코딩의 기술' 카테고리의 다른 글
[BW 21] 변수 영역과 클로저의 상호작용 방식을 이해하라 (0) 2024.10.23 [BW 20] None을 반환하기보다는 예외를 발생시켜라 (0) 2024.10.23 [BW 18] __missing__을 사용해 키에 따라 다른 디폴트 값을 생성하는 방법 (0) 2024.10.22 [BW 14] 복잡한 기준을 사용해 정렬할 때는 key 파라미터를 사용하라 (1) 2024.10.22 [BW 13] 슬라이싱보다는 나머지를 모두 잡아내는 언패킹을 사용하라 (0) 2024.10.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)