새소식

반응형
Python/문법

Python 바다코끼리 연산자(Walrus Operator) := := := :=

  • -
반응형

파이썬의 바다코끼리 연산자(walrus operator)에 대해 알아봅시다. 사실 자주 보이는 문법은 아니지만 한번씩 보이는 문법이라 알고넘어 가는게 좋겠습니다. 또한 코드 가독성 좋은 코드를 작성할때 도움이 됩니다. 

 

이 연산자는 Python 3.8에서 도입되었습니다. 바다코끼리 연산자는 :=로 표현되며, 할당 표현식(assignment expression)이라고도 불립니다. 이 연산자의 주요 기능은 표현식 내에서 변수에 값을 할당하고 동시에 그 값을 사용할 수 있게 해주는 것입니다.

간단한 예제를 통해 살펴보겠습니다:

# 바다코끼리 연산자 사용 예
if (n := len(myList)) > 10:
    print(f"리스트가 너무 깁니다. 길이: {n}")

이 코드에서 n := len(myList)는 myList의 길이를 계산하여 n에 할당하고, 동시에 그 값을 if 문의 조건으로 사용합니다.

 

 

문자열이 뒤집어도 같은지 확인하는 함수를 예로 들어보겠습니다.

Before.

def isPalindrome(s):
    return s == s[::-1]

※ 참고: Python에서 [::-1]은 시퀀스(여기서는 문자열)를 역순으로 만드는 슬라이싱 문법입니다.

 

 

위의 함수를 바다코끼리 연산자를 써서 사용하면 아래처럼 됩니다.

After.

def isPalindrome(s):
    return (rev := s[::-1]) == s

 

위의 예시만 보면 그냥 s == s[::-1] 쓰면되지 왜 굳이 사용해야되지? 생각이 듭니다.

 

 

다음의 예시로 바다코끼리 연산자가 어떻게 가독성을 높일 수 있는지 보여드리겠습니다.

skill을 쓰는 함수 입니다. 여기서 주목할것은 fireSkill을 선언하고 if문으로 값이 있는지 확인합니다.

반응형

 

Before.

def useSkill(skills):
    fireSkill = skills['fireball']
    
    if fireSkill :
        return fireSkill if fireSkill > 200 else skills['iceball']

    return "cooltime"

 

 

After.

def useSkill(skills):
    if (fireSkill := skills['fireball']) :
        return fireSkill if fireSkill > 200 else skills['iceball']

    return "cooltime"

 

바다코끼리 연산자를 사용함으로서 fireSkill을 먼저 선언할 필요가 없어졌습니다. 

이런식으로 코드 한줄씩 줄이고 가독성을 높일수도 있겠습니다.

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.