Batter way 5 도우미 함수를 작성

매일 공부(ML)·2022년 2월 2일
0

도우미 함수를 작성해야하는 이유?

결국에 우리는 가독성의 문제를 항상 염두해야합니다. 가독성이 좋은 코드를 짜려고 노력해야하고 반복적인 표현으로 인해 식의 복잡성을 피해야합니다.

그러므로, 단순히 코드를 나열하는 것은 전혀 좋지 못합니다.

그렇다면 어떻게 도우미 함수를 짤 수 있을까요?

그것은, 단순히 쪼개기를 하면 됩니다

무슨 말이냐면, 식이 복잡해지기 시작을 하면 우리의 가독성을 떨어지고 반복적인 코드는 늘어날 것입니다. 그 부분을 잘 포착하여 식을 더 작은 조각으로 나눠서 로직을 도우미 함수로 옮기면 됩니다.

한 가지, 중요한 것은 코드를 줄이는 것이 아닌 가독성을 좋게 하는 것입니다.


*도우미 함수 사용 안함

  • 다른 값을 수정하고 싶으면 유동이 아닌 수동적으로 로직을 수정해야합니다.

  • 식이 길면 길수록 번거로움은 증가할 것입니다.

from urllib.parse import parse_qs

my_values = parse_qs('빨강=5&파랑=0&초록=',
                     keep_blank_values=True)

#get메서드를 사용하면 상황에 따라 다른 값이 반환됩니다.

red = my_values.get('빨강', [''])[0] or 0
green = my_values.get('초록', [''])[0] or 0
opacity = my_values.get('투명도', [''])[0] or 0

print(f'빨강: {red!r}') # 빨강: '5'
print(f'초록: {green!r}') # 초록: 0
print(f'투명도: {opacity!r}') #투명도:0
print(repr(my_values)) #{'빨강':['5'], '파랑':['0'], '초록':['']}

*도우미 함수

def get_first_int(values, key, default = 0):
    found = values.get(key, [''])
    if found[0]:
        return int(found[0])
    return default

이 함수가 완성이 되면, 코드 한 줄만 넣어도 원하는 값을 얻게 됩니다.

green = get_first_int(my_values, '초록')

정리
  • 파이썬 문법 사용하면 아주 복잡하고 가독성이 저해되는 식도 한 줄로 정리가 가능합니다.

  • 같은 로직을 반복 사용하는 복잡한 식을 도우미 함수로 옮기기

  • 불 연산자,or, and를 식에 사용하는 것보다 if/else구문을 이용하는 것이 가독성에 더 좋습니다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글