본문 바로가기
Coding/Python

Python Anti Pattern - Not using unpacking for updating multiple values at once

by Hide­ 2019. 1. 28.
반응형

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