code: def _get_objects_path(self):
      def get():
          obj = self._obj
          yield obj
          try:
              obj = obj.__objclass__
          except AttributeError:
              pass
          else:
              yield obj
  
          try:
              # Returns a dotted string path.
              imp_plz = obj.__module__
          except AttributeError:
              # Unfortunately in some cases like `int` there's no __module__
              if not inspect.ismodule(obj):
                  yield builtins
          else:
              if imp_plz is None:
                  # Happens for example in `(_ for _ in []).send.__module__`.
                  yield builtins
              else:
                  try:
                      # TODO use sys.modules, __module__ can be faked.
                      yield sys.modules[imp_plz]
                  except KeyError:
                      # __module__ can be something arbitrary that doesn't exist.
                      yield builtins
  
      return list(reversed(list(get())))
  
imports: import inspect
  import types
  import sys
  from textwrap import dedent
  import operator
  from collections import namedtuple
  from jedi._compatibility import unicode, is_py3, builtins, py_version, force_unicode, print_to_stderr
  from jedi.evaluate.compiled.getattr_static import getattr_static
label_desc: Use image node_id 25 for calling the DirectObjectAccess obj's underlying member method code with example usage: obj._get_objects_path() and returns: list