1

꽤 이상한 질문이지만 특정 브래킷 유형의 의미에 과부하를 걸 수 있습니다. <, >, [, ] and | in python. 예를 들어 어떤 객체 인스턴스가 MyObj1MyObj2 인 경우 이라는 메소드를 MyObj1의 메소드 호출로 이해할 수 있습니까?Python의 오버로드 꺾쇠 괄호

나는 아마 할 수 없거나 할 수 없다고 생각하지만 나는 물을 것이라고 생각했다!

+0

Uhhhhh ... * 왜? * 편집 : 또한 CPython을 포크하고 코드를 직접 작성하지 않으면 불가능합니다. – Ffisegydd

+1

운영자에게 과부하가 걸릴 수 있지만 [arity] (http://en.wikipedia.org/wiki/Arity)는 변경할 수 없습니다. '<' and '>'은 과부하를 걸더라도 두 피연산자가 필요한 이진 연산자입니다. –

+0

그래, 조금 밖에 멀었다 고 생각했지만 빠른 설명으로 브래지어를 계산할 무언가를 쓰고 싶었다. (http://en.wikipedia.org/wiki/Bra%E2%80%93ket_notation) 편리하고 구문 론적으로 유사한 방식으로 – JMzance

답변

4

아니요. 파이썬에서 허용되는 연산자 오버로딩은 기존 운영자의 런타임 의미를 변경하는 것입니다. <MyObj1 | MyObj2 > 구문은 단항 연산자 (하나의 접두사, 하나의 접미사)로 <>을 만들거나 둘 다 하나의 "circumfix"연산자로 만드는 것입니다. 현재 둘 다 바이너리 삽입 연산자이므로 이러한 변경을 수행 할 수 없습니다.

관련 문제