code: def _get_params_callbacks(self, deep=True):
          
          params = {}
          if not deep:
              return params
  
          callbacks_ = getattr(self, 'callbacks_', [])
          for key, val in chain(callbacks_, self._default_callbacks):
              name = 'callbacks__' + key
              params[name] = val
              if val is None:  # callback deactivated
                  continue
              for subkey, subval in val.get_params().items():
                  subname = name + '__' + subkey
                  params[subname] = subval
          return params
docs: sklearn's .get_params checks for `hasattr(value,
          'get_params')`. This returns False for a list. But our
          callbacks reside within a list. Hence their parameters have to
          be retrieved separately.