본문 바로가기
CS/Python

python 함수 리턴 밑줄 변수 "_ " 의 의미

by Warehaus 2022. 6. 16.

파이썬  코드를 보다보면 underscore(밑줄,  _ ) 값 을 리턴하는 경우가 있다.
다음 코드의 예시를 보자

def demo_func( mul ):
    return 1*mul, 2*mul, 3*mul

if __name__ == "__main__":
    a, b, c = demo_func(1)
    print ( a, b, c )

    a1, b1, _ = demo_func(2)
    print ( a1, b1, _ )

    a2, _, c2 = demo_func(3)
    print ( a2, _, c2 )

이렇게 작성 된 코드의 출력은 어떻게 될까?
결과는 다음과 같다.

% python3 return_.py
1 2 3
2 4 6
3 6 9

_ 에 할당 한 값을 print 함수는 정상적으로 출력 해 준다.

그런데 밑줄변수 _ 는 왜 사용하는걸까?
이는 일련의 약속이라고 이해해도 좋겠다.

파이썬에서 변수 _ (underscore) 에 값을 저장한다는 것은 이 값은 신경쓰지 않음을 의미한다.
즉, 사용하지 않을 변수라는 것이다.

반응형

위의 예시에서는 굳이 출력을 해서 값을 사용할 수 있도록 만들어 두었지만 아래와 같은 예시에서는 사실 상 값의 손실이 일어나기 때문에 의미가 없는 변수가 되어버린다.

% cat return_.py 

def demo_func( mul ):
    return 1*mul, 2*mul, 3*mul

if __name__ == "__main__":
    a2, _, _ = demo_func(3)
    print ( a2, _, _ )
    
% python3 return_.py
3 9 9

 

 

결론

파이썬에서 _ 에 값을 저장하는 행위는 해당 변수를 사용하지는 않는 값이 라는 것을 명시하기 위한 행위로 보면 된다.

코딩을 하다보면 필요에 의해서 함수를 호출하기는 했는데 리턴 값을 모두 사용하지 않을 수도 있을 것이다. 이럴 때 _ 변수에 할당함으로써 에러를 피하고 필요한 값만 골라서 사용하면 되겠다.