docstr: Returns the column names of this :class:`~perspective.Table`.
  
  Returns:
      :obj:`list`: a list of string column names
docstr_tok: ["Returns","the","column","names","of","this",":","class",":","`","~perspective.Table","`",".","Returns",":",":","obj",":","`","list","`",":","a","list","of","string","column","names"]
code: def columns(self):
      """Returns the column names of this :class:`~perspective.Table`.
  
      Returns:
          :obj:`list`: a list of string column names
      """
      return [
          name
          for name in self._table.get_schema().columns()
          if name != "psp_okey"
      ]
  
imports: from datetime import date, datetime
  from ..core.exception import PerspectiveError
  from ._accessor import _PerspectiveAccessor
  from ._callback_cache import _PerspectiveCallBackCache
  from ._date_validator import _PerspectiveDateValidator
  from ._state import _PerspectiveStateManager
  from ._utils import _dtype_to_pythontype, _dtype_to_str, _parse_expression_inputs, _str_to_pythontype
  from .libpsppy import make_table, update_table, str_to_filter_op, t_dtype, t_filter_op, t_op, validate_expressions
  from .view import View
label_desc: Use image node_id 14 for calling the Table obj's underlying member method code with example usage: obj.columns() and returns: unknown