class_docstr: Custom property-like object (descriptor) for caching accessors.
  
  Parameters
  ----------
  name : str
      The namespace this will be accessed under, e.g. ``df.foo``
  accessor : cls
      The class with the extension methods. The class' __init__ method
      should expect one of a ``Series``, ``DataFrame`` or ``Index`` as
      the single argument ``data``
code: def __get__(self, obj, cls):
      if obj is None:
          # we're accessing the attribute of the class, i.e., Dataset.geo
          return self._accessor
      accessor_obj = self._accessor(obj)
      # Replace the property with the accessor object. Inspired by:
      # http://www.pydanny.com/cached-property.html
      # We need to use object.__setattr__ because we overwrite __setattr__ on
      # NDFrame
      object.__setattr__(obj, self._name, accessor_obj)
      return accessor_obj
  
imports: import warnings
  from pandas.util._decorators import Appender
label_desc: Use image node_id 2 for calling the CachedAccessor obj's underlying member method code with example usage: obj.__get__(obj, cls) and returns: accessor_obj, self