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

파이썬에서 연산자 우선순위를 변경할 수 있을까?

파이썬에서 연산자 우선순위 변경이 가능할까?

결론부터 말하자면, 불가능합니다. 연산자 우선순위는 파이썬 언어 자체에 내장된 규칙으로, 인터프리터가 표현식을 해석하고 구문 트리(parse tree, syntax tree)를 생성하는 과정의 핵심적인 부분이기 때문입니다. 따라서 개발자가 임의로 우선순위를 수정하거나 재정의할 방법은 없습니다.

파이썬 공식 문서에서도 이를 명확히 설명하고 있습니다.

여러 종류의 연산자가 섞인 수학 연산을 수행할 때, 파이썬은 미리 정해진 우선순위(precedence)에 따라 어떤 연산을 먼저 수행할지 결정합니다. 이 우선순위 체계는 대부분의 프로그래밍 언어와 유사하게 설계되어 있습니다.

연산자 우선순위의 기본 원리

간단한 예시로 살펴보겠습니다.

result = 2 + 3 * 4

곱셈(*)이 덧셈(+)보다 우선순위가 높기 때문에 위 식의 결과는 20이 아니라 14가 됩니다. 즉, 파이썬은 항상 정해진 순서에 따라 표현식을 평가하며, 이 동작은 코드 작성자가 변경할 수 없습니다.

평가 순서를 조절하고 싶다면? 괄호를 활용하세요

우선순위 자체를 바꿀 수는 없지만, 괄호(parentheses)를 사용하면 원하는 순서대로 연산을 수행하도록 지정할 수 있습니다. 괄호 안의 표현식은 항상 가장 먼저 계산됩니다.

result = (2 + 3) * 4 # 결과: 20

복잡한 수식을 다룰 때는 우선순위에 의존하기보다 괄호를 명시적으로 사용하는 것이 가독성과 유지보수 측면에서 훨씬 좋은 습관입니다.

참고: 연산자 오버로딩과의 차이

파이썬에서는 연산자 오버로딩(operator overloading)을 통해 특정 클래스에서 +, * 같은 연산자의 동작을 재정의할 수 있습니다. 하지만 이는 연산의 의미를 바꾸는 것이지, 우선순위 자체를 변경하는 것은 아닙니다. 우선순위는 파서(parser)가 소스 코드를 분석하는 단계에서 이미 고정되기 때문입니다.