Operador sobrecarregado em python com o objeto do lado direito do operador

Eu recentemente aprendi sobre sobrecarga de operador em python e gostaria de saber se o seguinte é possível.

Considere a seguinte classe hipotética / inventada.

<code>class My_Num(object):
    def __init__(self, val):
        self.val = val
    def __add__(self, other_num):
        if isinstance(other_num, My_Num):
            return self.val + other_num.val
        else:
            return self.val + other_num
</code>

Eu sei que da maneira que está escrito acima, eu posso fazer coisas assim

<code>n1 = My_Num(1)
n2 = My_Num(2)
n3 = 3
print n1 + n2
print n1 + n3
</code>

e esses funcionarão como esperado. Eu também sei que a maneira que está atualmente escrita eu não posso fazer isso

<code>n1 = My_Num(1)
n2 = 2
print 2 + n1
</code>

Existe alguma maneira de contornar isso? Eu sei que este exemplo é planejado, mas eu tenho uma aplicação em que seria muito útil se, quando eu fiz sobrecarga de operador, a classe para a qual eu defino o operador pode aparecer no lado direito do operador. Isso é possível em python?

questionAnswers(2)

yourAnswerToTheQuestion