<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_splits(self, n_splits=1):
 """Return splits of this dataset ready for Cross Validation. If n_splits is 1, a tuple containing the X for train and test and the y for train and test is returned. Otherwise, if n_splits is bigger than 1, a list of such tuples is returned, one for each split. Args: n_splits (int):
 Number of times that the data needs to be splitted. Returns: tuple or list: if n_splits is 1, a tuple containing the X for train and test and the y for train and test is returned. Otherwise, if n_splits is bigger than 1, a list of such tuples is returned, one for each split. """

        if n_splits == 1:
            stratify = self.target if self._stratify else None

            return train_test_split(
                self.data,
                self.target,
                shuffle=self._shuffle,
                stratify=stratify
            )

        else:
            cv_class = StratifiedKFold if self._stratify else KFold
            cv = cv_class(n_splits=n_splits, shuffle=self._shuffle)

            splits = list()
            for train, test in cv.split(self.data, self.target):
                X_train = self._get_split(self.data, train)
                y_train = self._get_split(self.target, train)
                X_test = self._get_split(self.data, test)
                y_test = self._get_split(self.target, test)
                splits.append((X_train, X_test, y_train, y_test))

            return splits