나는 그렇게 생각하지 않는다. 그러나 나는 만일을 대비해서 내가 묻기를 바랬다. 예를 들어, int를 캡슐화하는 클래스에서 사용 :python에 변환 연산자가 있습니까?
i = IntContainer(3)
i + 5
그리고이 INT 예에만 관심이 아니에요, 나는 깨끗하고 일반적으로 뭔가를 찾고 모든 값 int 및 문자열 방법 오버라이드 (override)되지 않았습니다.
감사합니다. sunqiang. 그게 내가 원하는거야. 나는 당신이이 불변의 타입을 서브 클래스화할 수 있다는 것을 깨닫지 못했다. (C++에서왔다.)
class IntContainer(int):
def __init__(self,i):
#do stuff here
self.f = 4
def MultiplyBy4(self):
#some member function
self *= self.f
return self
print 3+IntContainer(3).MultiplyBy4()
아니요. C++ 변환 연산자와 같은 것을 찾고 있었는데, 컨테이너 객체를 표현식에 포함 된 내용으로 지능적으로 대체합니다. – Alex
"5 + i"로는 실패합니다. – ars
ars, 당신 말이 맞아, 나는 당신의 대답을 보았고 나는 __radd__을 놓치고있다 ... 나는 나의 대답을 바꾼 후에 이제 괜찮다고 생각한다 ... –