파이썬 삼항 연산자는 오버로드가 불가능합니다
파이썬에서 삼항 연산자(조건부 표현식)는 오버로드할 수 없습니다. 이유는 삼항 연산자가 +나 -처럼 특수 메서드(__add__ 등)로 연결되는 연산자가 아니라, 언어 자체의 문법 구조(조건부 표현식)이기 때문입니다.
하지만 다행히도, 삼항 연산자의 동작을 람다(lambda) 함수나 일반 함수로 감싸서 비슷한 방식으로 활용할 수 있습니다.
람다 함수로 감싸서 활용하기
다음 예제는 조건에 따라 다른 값을 반환하는 람다 함수를 정의하고 호출하는 코드입니다.
result = lambda x: 1 if x < 3 else 10 print(result(2)) print(result(1000))
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
1 10
동작 방식 설명
이 람다 함수는 입력값 x가 3보다 작으면 1을 반환하고, 그렇지 않으면 10을 반환합니다. 따라서 result(2)는 1을, result(1000)은 10을 출력하게 됩니다.
정리
- 파이썬의 삼항 연산자(
A if 조건 else B)는 문법 구조이므로 오버로드할 수 없습니다. - 대신 람다 함수나 일반 함수로 조건부 로직을 감싸서 재사용 가능한 형태로 만들 수 있습니다.
- 코드의 가독성을 높이려면 람다보다
def로 정의한 일반 함수를 사용하는 것도 좋은 방법입니다.