더북(TheBook)

BETTER WAY 21
키워드 전용 인수로 명료성을 강요하자

 

 

키워드로 인수를 넘기는 방법은 파이썬 함수의 강력한 기능이다(Better way 19 “키워드 인수로 선택적인 동작을 제공하자” 참고). 키워드 인수의 유연성 덕분에 쓰임새가 분명하게 코드를 작성할 수 있다.

예를 들어 어떤 숫자를 다른 숫자로 나눈다고 해보자. 하지만 특별한 경우를 매우 주의해야 한다. 때로는 ZeroDivisionError 예외를 무시하고 무한대 값을 반환하고 싶을 수 있다. 어떨 때는 OverflowError 예외를 무시하고 0을 반환하고 싶을 수도 있다.

def safe_division(number, divisor, ignore_overflow, ignore_zero_division):

try:

return number / divisor

except OverflowError:

if ignore_overflow:

return 0

else:

raise

except ZeroDivisionError:

if ignore_zero_division:

return float(‘inf’)

else:

raise

 

이 함수를 사용하는 방법은 간단하다. 다음 함수 호출은 나눗셈에서 일어나는 float 오버플로우를 무시하고 0을 반환한다.

result = safe_division(1, 10**500, True, False)

print(result)

 

>>>

0.0

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.