파이썬 일반 함수에서는 다음과 같이 복수의 값을 리턴할 수 있다.
def func(x):
return x + 1, x + 2
func(1)
# 결과
(3, 4)
인수를 함께 호출해보면 튜플로 결과값을 반환한다.
그렇다면 람다 함수의 경우에는 어떻게 표현해야 할까? 단순히 위 함수처럼 나열하면 되지 않을까?
(lambda x: x + 1, x + 2)(1)
그래서 위와 같이 입력해보면 다음의 오류가 난다.
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
(lambda x: x + 1, x + 2)(1)
NameError: name 'x' is not defined
이렇게 되는 이유를 추측해보면 람다 표현식 안에서는 괄호를 해주지 않으면 튜플로 인식하지 못하기 때문인 듯 하다.
위의 일반함수 예시에서 return을 뒤따르는 두 표현식 x+1과 x+2가 파이썬 문법에 따라 괄호 없이도 튜플이 되는 것과는 다르게 말이다.
괄호를 쳐주고 다시 실행해보면 정상적으로 결과가 나온다.
(lambda x: (x + 1, x + 2))(1)
# 결과
(2, 3)
'파이썬' 카테고리의 다른 글
파이썬 버전을 지정하여 pip 실행하기 (0) | 2023.07.08 |
---|---|
파이썬에서 메모장으로 텍스트 파일 열기(윈도우 기준) (0) | 2023.06.17 |
언더바 '_' 로 반환값 가져오기 (0) | 2023.04.26 |
파이썬 버전 지정하여 콘솔 실행하기 (0) | 2023.04.06 |
virtualenv 파이썬 버전 설정 (0) | 2023.04.04 |