def __init__(
        self,
        backdoor: PoisoningAttackBackdoor,
        class_source: int = 0,
        percent_poison: float = 0.3,
        channels_first: bool = False,
        verbose: bool = False,
    ) -> None:
        """
        Creates a new BadDet Object Disappearance Attack

        :param backdoor: the backdoor chosen for this attack.
        :param class_source: The source class from which triggers were selected.
        :param percent_poison: The ratio of samples to poison in the source class, with range [0, 1].
        :param channels_first: Set channels first or last.
        :param verbose: Show progress bars.
        """
        super().__init__()
        self.backdoor = backdoor
        self.class_source = class_source
        self.percent_poison = percent_poison
        self.channels_first = channels_first
        self.verbose = verbose
        self._check_params()

        Creates a new BadDet Object Disappearance Attack

        :param backdoor: the backdoor chosen for this attack.
        :param class_source: The source class from which triggers were selected.
        :param percent_poison: The ratio of samples to poison in the source class, with range [0, 1].
        :param channels_first: Set channels first or last.
        :param verbose: Show progress bars.
        
art/attacks/poisoning/bad_det/bad_det_oda.py