Tengo un Vec3D clase (ver http://pastebin.com/9Y7YbCZq)Anulación operador + en Python para el flotador + obj
Actualmente, permito Vec3D (1,0,0) + 1,2 pero me pregunto cómo debería proceder a una sobrecarga el operador + de tal manera que llegue el siguiente resultado: no se requiere
>>> 3.3 + Vec3D(1,0,0)
[4.3, 3.3 , 3.3]
Código, pero sólo un toque en qué dirección debo mirar. Algo general será más útil que una aplicación específica, ya que necesito para aplicar lo mismo para la multiplicación, resta, etc.
No vi el mensaje "Algo general será más útil que una implementación específica ya que necesito implementar lo mismo para la multiplicación, la resta, etc." pero el enlace en mi respuesta lo llevará a la [lista de métodos mágicos utilizados para emular un tipo numérico] (http://docs.python.org/reference/datamodel.html#emulating-numeric-types). – agf
Está bien, dejé de leer después de "Estás buscando __radd__" y hice clic en el enlace :) Sin embargo, tu código lo hizo mucho más claro, así que gracias –
Si tienes un __add __ personalizado personalizado para tu clase, luego, justo después de su definición, podría incluir una línea '__radd__ = __add__'. Esto funciona porque radd intercambia el orden de los argumentos por ti. –