code: def d(obj, mode='exec', file=None):
      
      if file is None:
          file = sys.stdout
  
      for name, co in walk_code(extract_code(obj, compile_mode=mode)):
          print(name, file=file)
          print('-' * len(name), file=file)
          dis.dis(co, file=file)
          print('', file=file)
docs: Interactive convenience for displaying the disassembly of a function,
      module, or code string.
  
      Compiles `text` and recursively traverses the result looking for `code`
      objects to render with `dis.dis`.
  
      Parameters
      ----------
      obj : str, CodeType, or object with __code__ attribute
          Object to disassemble.
          If `obj` is an instance of CodeType, we use it unchanged.
          If `obj` is a string, we compile it with `mode` and then disassemble.
          Otherwise, we look for a `__code__` attribute on `obj`.
      mode : {'exec', 'eval'}, optional
          Mode for `compile`.  Default is 'exec'.
      file : None or file-like object, optional
          File to use to print output.  If the default of `None` is passed, we
          use sys.stdout.