왈러스 연산자를 사용하면 while 루프에서 매번 fresh_fruit 변수에 대입하고 조건을 검사할 수 있으므로 무한 루프-중간에서 끝내기 관용어의 필요성이 줄어든다. 이 해법이 더 짧고 읽기 쉽기 때문에 여러분은 코드에서 이 방식을 우선적으로 사용해야 한다.
bottles = [] while fresh_fruit := pick_fruit(): for fruit, count in fresh_fruit.items(): batch = make_juice(fruit, count) bottles.extend(batch)
대입식을 사용해 중복을 줄일 수 있는 다른 상황도 많다(Better way 29: ‘대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라’ 참고). 일반적으로 몇 줄로 이뤄진 코드 그룹에서 같은 식이나 같은 대입문을 여러 번 되풀이하는 부분을 발견하면 가독성을 향상시키기 위해 대입식을 도입하는 것을 고려해봐야 한다.
기억해야 할 내용
• 대입식에서는 왈러스 연산자(:=)를 사용해 하나의 식 안에서 변수 이름에 값을 대입하면서 이 값을 평가할 수 있고, 중복을 줄일 수 있다.
• 대입식이 더 큰 식의 일부분으로 쓰일 때는 괄호로 둘러싸야 한다.
• 파이썬에서는 switch/case 문이나 do/while 루프를 쓸 수 없지만, 대입식을 사용하면 이런 기능을 더 깔끔하게 흉내 낼 수 있다.