본문 바로가기
Language & Tool/Python

🐍연산자 함수화, operator 모듈

by 박수무당벌레 2025. 6. 16.

1. 핵심 개념

  • 기본적인 연산자(+, , == 등)를 함수처럼 사용할 수 있도록 해주는 내장 모듈
  • 주로 map(), reduce(), sorted()에서 key나 func 인자로 활용됨

 

2. 대표 함수 목록

 

- 이항 연산 함수

  설명 예시
operator.add(a, b) a + b add(2, 3) → 5
operator.mul(a, b) a × b mul(4, 5) → 20
operator.sub(a, b) a - b sub(9, 2) → 7
operator.truediv(a, b) a ÷ b truediv(10, 4) → 2.5
operator.floordiv(a, b) a // b floordiv(10, 4) → 2
operator.mod(a, b) a % b mod(10, 3) → 1

 

- 비교 연산 함수 (= 이항 연산)

  설명 예시
operator.lt(a, b) a < b ( less than) lt(2, 5) → True
operator.le(a, b) a ≤ b  (less than or equal) le(2, 2) → True
operator.eq(a, b) a == b (equal) eq(3, 3) → True
operator.ne(a, b) a ≠ b (not equal) ne(3, 5) → True
operator.gt(a, b) a > b (greater than) gt(5, 2) → True
operator.ge(a, b) a ≥ b (greater than or equal) ge(5, 5) → True

 

- 객체 기반 접근을 돕는 함수들 (lambda를 대체해 가독성을 높여줌)

  설명 예시
operator.itemgetter(n) 인덱스로 요소 꺼내기 (시퀀스/딕셔너리 등에서 인덱스/키로 요소 접근)
→ lambda x: x[i]으로 대체할 수 있음
itemgetter(1)(['a', 'b', 'c']) → 'b'
operator.attrgetter('x') 객체의 속성 꺼내기
(객체의 속성(obj.name 등)을 꺼내는 함수)
→ lambda x: x.name으로 대체 가능
attrgetter('x')(obj)
operator.methodcaller('strip') 문자열 메서드 실행
(문자열이나 객체의 메서드를 호출하는 함수)
→ lambda x: x.strip()으로 대체 가능
methodcaller('upper')('hi') → 'HI'