I would like to be able to add to a custom class in the style of:
x=myclass("Something", 7)
x + 3
7, of course, corresponds with an inner property that I’d like to increment by adding to it.
The class holds a number that refers to a location in a list. This might seem like something that can be done by a normal integer, but I need it to act as a separate type. This is all done to emulate an old game language. The class is its ‘variable’ class, and the value of the variable is stored in the aforementioned list. Apparently, on older version of the game, arrays were faked by doing math on the variable object instance to grab a different variable. So I’m trying to emulate that.
If you want to support addition for class instances, you need to define an
__add__()method on your class:Example:
To also support
3 + a, define the__radd__()method.If you want to be able to update the
xattribute ofMyClassinstances usingyou can define
__iadd__().If you want class instances to behave like integers with some additional methods and attributes, you should simply derive from
int.