가독성 저해
해석 어려움
#질의 문자열이 '빨강=5&파랑=0&초록='인 경우
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
if/else 조건식을 활용하여 코드 간결성 증가
bool연산자는 or나 and를 식에 사용하는 것볻 if/else식을 쓰는 편이 가독성이 좋다.
red_str = my_values.get('빨강',[''])
if red_str[0]:
red =int(red_str[0])
else:
red = 0
반복 적용을 끝낼 수 있다.
복잡한 버전이나 if/else보다 명확
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, 초록)