파이썬 코드를 보다보면 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
결론
파이썬에서 _ 에 값을 저장하는 행위는 해당 변수를 사용하지는 않는 값이 라는 것을 명시하기 위한 행위로 보면 된다.
코딩을 하다보면 필요에 의해서 함수를 호출하기는 했는데 리턴 값을 모두 사용하지 않을 수도 있을 것이다. 이럴 때 _ 변수에 할당함으로써 에러를 피하고 필요한 값만 골라서 사용하면 되겠다.
'CS > Python' 카테고리의 다른 글
[파이썬 개발자 로드맵] Functions - 함수 만들어서 사용하는 방법 (0) | 2022.07.04 |
---|---|
[파이썬 개발자 로드맵] Exceptions - Python 에서 예외(Exception)를 일으키고 처리하는 방법 , try ... except ... else 의 의미 (0) | 2022.07.02 |
Python print 함수를 stdout, stderr 로 출력하는 방법 - python 개발자가 stderr를 써야하는 이유 (0) | 2022.06.15 |
[파이썬 개발자 로드맵] Type casting - python 변수 형변환 하는 방법 (0) | 2022.06.04 |
[파이썬 개발자 로드맵] Python 변수 와 데이터 타입에 대해 (0) | 2022.05.05 |