class Foo(object):

    def __add__(self, rhs):
        rhs_value_func = getattr(rhs, 'value', None)
if rhs_value_func is None:
    return NotImplemented
else:
    return self._value + rhs_value_func()
Are there best practices for extensible magic methods in python?