def copy(self, *args):
    new_instance = self.__class__
    return new_instance(self.function, *args)
def copy(self, *args):
    new_instance = self.__class__
    return new_instance(self.function, *args)