from RobotMobile import RobotMobile class Aspirateur: def __init__(self, marque, puissance): self.marque = marque self.puissance = puissance @property def marque(self): return self._marque @marque.setter def marque(self, value): if isinstance(value, str) and value: self._marque = value else: print("Erreur : la marque doit être une chaîne non vide.") self._marque = "Inconnu" @property def puissance(self): return self._puissance @puissance.setter def puissance(self, value): if isinstance(value, int) and value > 0: self._puissance = value else: print("Erreur : la puissance doit être un entier positif.") self._puissance = 1000 def __str__(self): return f"Aspirateur {self.marque}, puissance={self.puissance}W" # --- Aspirateur Robot --- class AspirateurRobot(Aspirateur, RobotMobile): def __init__(self, marque, puissance, distance_max): # Initialisation RobotMobile avec type "Aspirateur robot" RobotMobile.__init__(self, robot_type="Aspirateur robot", orientation="NORD", statut=1, abscisse=0, ordonnee=0) Aspirateur.__init__(self, marque, puissance) self.distance_max = distance_max self._distance_parcourue = 0 # pour suivre le parcours @property def distance_max(self): return self._distance_max @distance_max.setter def distance_max(self, value): if isinstance(value, (int, float)) and value > 0: self._distance_max = value else: print("Erreur : distance_max doit être positive.") self._distance_max = 100 def __str__(self): return (super(RobotMobile, self).__str__() + f"\nMarque : {self.marque}\n" f"Puissance : {self.puissance}W")