![](https://secure.gravatar.com/avatar/d67ab5d94c2fed8ab6b727b62dc1b213.jpg?s=120&d=mm&r=g)
On Thu, Oct 3, 2013 at 11:09 PM, Игорь Васильев <vasilyev_igor@inbox.ru> wrote:
When we adding class to integer we have both slotv and slotw. x = slotv(v, w); -> returns Py_NotImplemented. But in this case we should execute x = slotw(v, w); and function should be completed in the same way as when we adding integer to class.
Can someone advise please where I mistake.
No need to dig into the CPython source for this, the answer's pretty simple: 1+a is handled by __radd__ not __add__.
class A(): def __add__(self, var): print("I'm in A class") return 5 def __radd__(self, var): print("I'm in A class, too") return 6
a=A() a+1 I'm in A class 5 1+a I'm in A class, too 6
You could ask this sort of thing on python-list@python.org rather than python-dev. ChrisA