반응형
Not using unpacking for updating multiple values at once
일반적으로 파이썬 커뮤니티는 장황한 코드보다 간결한 코드를 선호한다.
Unpacking을 사용하여 여러개의 값을 동시에 수정하는 것은 각 값을 하나씩 수정하는것보다 훨씬 간결하다.
Anti-pattern
def gcd(a, b): while b != 0: temp = b b = a % b a = temp return a
위 예제를 살펴보면 b에 값을 할당하고 다음라인에서 다시 a에 값을 할당한다.
일반적으로 swap하는 함수와 비슷한데, temp라는 추가적인 변수를 사용했다.
Best practice
def gcd(a, b): while b != 0: a, b = b, a % b return a
수정된 코드는 전의 코드와 기능적으로 동일하지만 좀 더 간결하다.
Gotchas
b = "1984" a = b, c = "AB" print(a, b, c)
Unpacking은 때로 오류를 범하기 쉽다. 위 코드를 살펴보자.
출처 : https://docs.quantifiedcode.com/python-anti-patterns/readability/not_using_unpacking_for_updating_multiple_values_at_once.html