[Python] 3.8: 바다코끼리(walrus) 연산자

파이썬 3.8에서 추가된 독특한 신택스 중 하나다.

바다코끼리는 별명이고, 정식 명칭은 Assignment expression이다. 근데 아무도 정식 명칭으로 안부른다.

그 기능의 특이성에 비해 잘 알려져있지 않고, 잘 쓰지도 않는 편인 것 같다.

모양이 := 인데, 바다코끼리와 닮았다고 저렇게 부른다.

.jpg?type=w800)




이게 뭔가?

C를 비롯한 몇가지 패밀리 언어들은 값의 할당이 그 자체로 표현식으로 사용된다. 할당식의 반환값을 받아다가 다른 연산에 사용할 수 있는 것이다.

하지만 파이썬은 그런게 불가능하다. 그래서 다음과 같이, 할당 후의 값을 바로 사용하는 것이 불가능하다.

그래서 저걸 하려면 기존에는 변수를 먼저 할당하고, 그 변수를 이후 구문에서 사용해야만 했다.

:=는 바로 이걸 가능케 해주는 기능이다.




좋은 기능인가?

이건 호불호가 상당히 갈릴 수 있는 패턴이고, 나도 별로 선호하지 않는다.

근래에 등장한 대다수의 모-던 언어들은 이런걸 의도적으로 제공하지 않았는데, 코드가 지저분해질 수도 있고 명확하지 않을 수 있기 떄문이다.
할당은 일종의 선언이기도 한데, 그게 표현식과 뒤섞이는게 좀...

그나마 C와 다르게 연산자가 분리되어있어서 조금 낫기는 하다.



참조
https://docs.python.org/3/whatsnew/3.8.html