code: def _inject_constructor(self, cls, func, name, resolution_level, keep,
                              trace):
          
          try:
              constructor = cls.__init__
          except AttributeError:
              def constructor(self, *_args, **_kwargs):
                  pass
  
          # Possible name clash between keyword arguments of the tracked class'
          # constructor and the curried arguments of the injected constructor.
          # Therefore, the additional argument has a 'magic' name to make it less
          # likely that an argument name clash occurs.
          self._observers[cls] = _ClassObserver(constructor,
                                                name,
                                                resolution_level,
                                                keep,
                                                trace)
          cls.__init__ = instancemethod(
              lambda *args, **kwds: func(self._observers[cls], *args, **kwds),
              None,
              cls
          )
docs: Modifying Methods in Place - after the recipe 15.7 in the Python
          Cookbook by Ken Seehof. The original constructors may be restored
          later.