Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 삼항 연산자는 오버로드할 수 있을까? 대안 방법 소개

파이썬 삼항 연산자는 오버로드가 불가능합니다

파이썬에서 삼항 연산자(조건부 표현식)는 오버로드할 수 없습니다. 이유는 삼항 연산자가 +-처럼 특수 메서드(__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로 정의한 일반 함수를 사용하는 것도 좋은 방법입니다.