for cls in (self.__class__.__mro__ + (self,)):
    if name in cls.__dict__:
        return object.__setattr__(self, name, value)
print('New name', name, value)
self.new_names[name] = value
Использование как __setattr__, так и дескрипторов для класса Python