CommencezCommencez gratuitement

Héritage multiniveau

Vous avez mis la main à la pâte avec l'héritage simple et l'héritage multiple. Dans cet exercice, vous allez mettre en œuvre l'héritage multiniveau en construisant une nouvelle version de la classe Smartphone.

Pour vous aider à démarrer, les classes Computer et Tablet ont été définies et sont fournies ci-dessous. Il est important de noter que Tablet hérite de la classe Computer. Bonne chance!

class Computer:
  def __init__(self, brand):
    self.brand = brand

  def browse_internet(self):
    print(f"Using {self.brand}'s default internet browser.")

class Tablet(Computer):
  def __init__(self, brand, apps):
    Computer.__init__(self, brand)
    self.apps = apps

  def uninstall_app(self, app):
    if app in self.apps:
      self.apps.remove(app)

Cette activité fait partie du cours

Programmation orientée objet intermédiaire en Python

Voir le cours

Instructions de l’exercice

  • Définissez une classe Smartphone qui hérite de Tablet, appelez le constructeur du parent et définissez l'attribut d'instance phone_number.
  • Créez une méthode send_text qui envoie un message texte à un recipient à partir du phone_number du Smartphone.
  • Instanciez un objet Smartphone nommé personal_phone et appelez sa méthode .browse_internet(); désinstallez l'application Weather, puis envoyez, par texto, le message Time for a new mission! à Chuck.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Create a Smartphone class that inherits from Tablet
class ____(____):
  def __init__(self, brand, apps, phone_number):
    ____.____(self, ____, ____)
    self.phone_number = ____
  
  # Create send_text to send a message to a recipient
  def ____(self, message, recipient):
    print(f"Sending {____} to {____} from {____.____}")

# Create an instance of Smartphone, call methods in each class
____ = Smartphone("Macrosung", ["Weather", "Camera"], "801-932-7629")    
personal_phone.____()
personal_phone.____("____")
personal_phone.____("____", "Chuck")
Modifier et exécuter le code