Python `__add__`: Return a new instance, not an int

Python `__add__`: Return a new instance, not an int

If your Python class implements __add__, it should usually return a new instance of your class, not an int:

class C:
    def __init__(self, x):
        self.x = x
    def __add__(self, other):
        return C(self.x + other.x)
c1 = C(10)
c2 = C(15)
vars(c1 + c2) # {'x':25}