4
누구나 설명해 주실 수 있습니까? A()+A()
은 오류가 발생하지만 B()+B()
은 예상대로 작동합니까? 더 큰 코드를 작성할 때이 점을 보았습니다.하지만 코드를 재현하는 데 필요한 가장 작은 코드 인 것 같습니다.새 형식 클래스 연산자
from types import MethodType
D = {'__add__': lambda x, y: "".join((repr(x), repr(y)))}
class A(object):
def __getattr__(self, item):
if item == '__coerce__':
raise AttributeError()
return MethodType(D[item], self)
def __repr__(self):
return "A"
class B():
def __getattr__(self, item):
if item == '__coerce__':
raise AttributeError()
return MethodType(D[item], self)
def __repr__(self):
return "B"
try:
A()+A()
except Exception as e:
print e
B()+B()
누구에게 설명이 있습니까?