Python의 연산자 오버로딩
Python에서는 사용자 정의 연산자 정의가 직접 지원되지 않습니다. 그러나 영리한 해결 방법을 사용하면 기존 연산자를 수정하여 새 연산자를 만드는 듯한 착각을 불러일으킬 수 있습니다. 이 "중위" 기술을 사용하면 다음 예와 같이 두 표현식 사이에서 작동하는 연산자를 정의할 수 있습니다.
<code class="python"># Simple multiplication operator x = Infix(lambda x, y: x * y) print(2 |x| 4) # Output: 8</code>
이 예에서 |x| 연산자는 곱셈 연산자(*)처럼 동작합니다. 마찬가지로, 사용자 정의 비교를 위한 연산자를 정의할 수 있습니다:
<code class="python"># Class checking operator isa = Infix(lambda x, y: x.__class__ == y.__class__) print([1, 2, 3] |isa| []) # Output: True print([1, 2, 3] <<isa>> []) # Output: True</code>
여기서 |isa| 연산자는 두 표현식이 동일한 클래스에 속하는지 확인합니다. 이 해결 방법은 Python 연산자의 기능을 효과적으로 확장하여 새로운 구문 없이 사용자 지정 작업을 정의할 수 있는 유연성을 제공합니다.
위 내용은 Python 연산자를 재정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!