Me gustaría que el operador de mi clase pueda interactuar con los tipos normales de la forma que defino. Digamos, por ejemplo, que tengo:Python: Operador Sobrecarga de un tipo específico
class Mynum(object):
def __init__(self, x):
self.x = x
def __add__(self, other):
return self.x + other.x
a = Mynum(1)
b = Mynum(2)
print a+b
Esto funciona bien, pero ahora si trato de hacer:
print a+2
me sale un error, ya que un int
no tenga un miembro nombrado x
. ¿Cómo se define Mynum
+ int
en la clase? Esto suena como un trabajo para decoradores o metaclases, pero estoy terriblemente familiarizado con su uso. This question parece similar, pero no del todo idéntico.
verifique el tipo o 'otro' o la presencia del atributo 'x'. – SilentGhost
no se olvide de hacer: '' __radd__' = __add__' también (a pesar de que no resolviera el problema) – jcao219