code: def _toInteractiveFunction(function):
      if isinstance(function, InteractiveFunction):
          # Nothing to do
          return function
  
      # If a reference isn't captured somewhere, garbage collection of the newly created
      # "InteractiveFunction" instance prevents connected signals from firing
      # Use a list in case multiple interact() calls are made with the same function
      interactive = InteractiveFunction(function)
      refOwner = (
          function
          if not inspect.ismethod(function)
          else function.__func__
      )
      if hasattr(refOwner, "interactiveRefs"):
          refOwner.interactiveRefs.append(interactive)
      else:
          refOwner.interactiveRefs = [interactive]
      return interactive
  
imports: import contextlib
  import functools
  import inspect
  import pydoc
  from .None import Parameter
  from .parameterTypes import ActionGroupParameter
  from ..None import functions
label_desc: Use image node_id 9 for calling the Interactor obj's underlying member method code with example usage: obj._toInteractiveFunction(function) and returns: interactive, function