def __init__(self, setup=None, target=None, teardown=None):
        """
        :param func setup: specific setup function to use (otherwise self.setup)
        :param func target: specific target function to use (otherwise self.run)
        :param func teardown: specific teardown function to use (otherwise self.teardown)

        """
        self._started = threading.Event()
        self._running = threading.Event()
        self._resume = threading.Event()

        self._setup = self.setup if setup is None else setup
        self._target = self.run if target is None else target
        self._teardown = self.teardown if teardown is None else teardown
        self._crashed = False
def __init__ ( self , setup = None , target = None , teardown = None ) : self . _started = threading . Event ( ) self . _running = threading . Event ( ) self . _resume = threading . Event ( ) self . _setup = self . setup if setup is None else setup self . _target = self . run if target is None else target self . _teardown = self . teardown if teardown is None else teardown self . _crashed = False
:param func setup: specific setup function to use (otherwise self.setup)
        :param func target: specific target function to use (otherwise self.run)
        :param func teardown: specific teardown function to use (otherwise self.teardown)