def func(self, value): if isinstance(value, NSObject): setattr(self, name, value.copy()) else: setattr(self, name, copy_func(value))