<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def front(self, n):
 """Returns the first n columns. Args: n: Integer containing the number of columns to return. Returns: DataManager containing the first n columns of the original DataManager. """

        new_dtypes = (
            self._dtype_cache if self._dtype_cache is None else self._dtype_cache[:n]
        )
        # See head for an explanation of the transposed behavior
        if self._is_transposed:
            result = self.__constructor__(
                self.data.transpose().take(0, n).transpose(),
                self.index,
                self.columns[:n],
                new_dtypes,
            )
            result._is_transposed = True
        else:
            result = self.__constructor__(
                self.data.take(1, n), self.index, self.columns[:n], new_dtypes
            )
        return result