code: def py__name__(self):
      if not _is_class_instance(
          self._obj
      ) or inspect.ismethoddescriptor(
          self._obj
      ):  # slots
          cls = self._obj
      else:
          try:
              cls = self._obj.__class__
          except AttributeError:
              # happens with numpy.core.umath._UFUNC_API (you get it
              # automatically by doing `import numpy`.
              return None
  
      try:
          return force_unicode(cls.__name__)
      except AttributeError:
          return None
  
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 8 for calling the DirectObjectAccess obj's underlying member method code with example usage: obj.py__name__() and returns: force_unicode, None, None