def METHOD_NAME(self) -> Callable[..., T]:
    from tango.common.from_params import FromParams
    if inspect.isclass(self._constructor) and issubclass(self._constructor, FromParams):
        def constructor_to_use(**kwargs):
            return self._constructor.from_params(  # type: ignore[union-attr]
                copy.deepcopy(self._params),
                **kwargs,
            )
        return constructor_to_use
    else:
        return self._constructor