class_docstr: A data frame class, with only the methods required by the interchange
  protocol defined.
  
  Instances of this (private) class are returned from
  ``cudf.DataFrame.__dataframe__`` as objects with the methods and
  attributes defined on this class.
class_docstr_tok: ["A","data","frame","class",",","with","only","the","methods","required","by","the","interchange","protocol","defined",".","Instances","of","this","(","private",")","class","are","returned","from","``","cudf.DataFrame.__dataframe__","``","as","objects","with","the","methods","and","attributes","defined","on","this","class","."]
code: def get_columns(self) -> Iterable[_CuDFColumn]:
      return [
          _CuDFColumn(
              as_column(self._df[name]), allow_copy=self._allow_copy
          )
          for name in self._df.columns
      ]
  
imports: import enum
  from collections import abc
  from typing import Any, Dict, Iterable, Mapping, Optional, Sequence, Tuple, cast
  import cupy
  import numpy
  from numba.cuda import as_cuda_array
  import rmm
  import cudf
  from cudf.core.buffer import Buffer, as_buffer
  from cudf.core.column import as_column, build_categorical_column, build_column
label_desc: Use image node_id 10 for calling the _CuDFDataFrame obj's underlying member method code with example usage: obj.get_columns() and returns: unknown