QCM Python - Programmation Orientée Objet – Partie 4

Question 1 sur 20

1. Quelle est la sortie de print(type(1).__mro__) ?

  • A. (<class 'int'>, <class 'object'>)
  • B. (<class 'object'>, <class 'int'>)
  • C. (<class 'type'>, <class 'int'>, <class 'object'>)
  • D. (<class 'int'>, <class 'type'>, <class 'object'>)
A

La méthode __mro__ retourne l'ordre de résolution de la méthode pour la classe donnée. Pour un objet de type int, l'ordre est <class 'int'>, <class 'object'>.

Question 2 sur 20

2. Que fait l'expression issubclass(bool, object) ?

  • A. Vérifie si bool est une sous-classe de object
  • B. Vérifie si object est une sous-classe de bool
  • C. Vérifie si object est une sous-classe de bool
  • D. Vérifie si bool est une sous-classe de int
A

En Python, bool est une sous-classe de object. Ainsi, l'expression issubclass(bool, object) renvoie True.

Question 3 sur 20

3. Que fait la méthode __call__() dans une classe Python ?

  • A. Permet à une instance de la classe d'être appelée comme une fonction.
  • B. Initialise l'instance de la classe.
  • C. Définit le comportement de l'objet lors de sa conversion en chaîne de caractères.
  • D. Gère les erreurs lors de l'exécution des méthodes de la classe.
A

La méthode __call__() permet à une instance de la classe d'être appelée comme une fonction. Cette méthode est invoquée lorsque l'on appelle l'objet comme une fonction.

Question 4 sur 20

4. Quelle est la sortie de print(hasattr(int, '__new__')) ?

  • A. True
  • B. False
  • C. None
  • D. Error
A

La méthode __new__() est une méthode spéciale pour créer de nouvelles instances d'une classe. Elle est définie dans toutes les classes de base, y compris int, donc hasattr(int, '__new__') retourne True.

Question 5 sur 20

5. Que fait la méthode __init_subclass__() dans une classe Python ?

  • A. Elle est appelée lorsqu'une sous-classe est créée.
  • B. Elle est appelée lors de l'initialisation d'une instance de la classe.
  • C. Elle définit les attributs de la classe.
  • D. Elle initialise les méthodes de la classe.
A

La méthode __init_subclass__() est appelée lorsque une sous-classe est créée. Elle peut être utilisée pour personnaliser le comportement des sous-classes.

Question 6 sur 20

6. Quelle est la sortie de print(len(set([1, 2, 2, 3, 4, 4]))) ?

  • A. 4
  • B. 6
  • C. 5
  • D. 2
A

La fonction set() supprime les doublons dans une liste. Ainsi, la longueur de l'ensemble résultant est 4.

Question 7 sur 20

7. Que fait super().__init__() dans une méthode __init__() d'une sous-classe ?

  • A. Appelle le constructeur de la classe parente.
  • B. Initialise les attributs de la sous-classe.
  • C. Déclenche une exception.
  • D. Retourne un nouvel objet.
A

La fonction super() permet d'appeler des méthodes de la classe parente depuis une sous-classe. super().__init__() appelle le constructeur de la classe parente.

Question 8 sur 20

8. Que fait self.__class__ dans une méthode d'instance ?

  • A. Référence la classe de l'instance courante.
  • B. Référence la classe parente de l'instance.
  • C. Référence l'objet lui-même.
  • D. Retourne la méthode d'instance.
A

Dans une méthode d'instance, self.__class__ référence la classe de l'instance courante.

Question 9 sur 20

9. Que fait isinstance(obj, (int, str)) ?

  • A. Vérifie si obj est une instance de int ou str
  • B. Vérifie si obj est une instance de list ou tuple
  • C. Vérifie si obj est une instance de dict ou set
  • D. Vérifie si obj est une instance de object ou type
A

La fonction isinstance() vérifie si l'objet est une instance d'une ou plusieurs classes spécifiées.

Question 10 sur 20

10. Que fait la méthode __del__() dans une classe Python ?

  • A. Elle est appelée lorsque l'objet est détruit.
  • B. Elle est appelée lors de la création de l'objet.
  • C. Elle initialise les attributs de l'objet.
  • D. Elle retourne les valeurs des attributs de l'objet.
A

La méthode __del__() est appelée lorsque l'objet est détruit, ce qui se produit lorsqu'il n'y a plus de références à cet objet.

Question 11 sur 20

11. Quelle est la sortie de print(type({1: 'a', 2: 'b'}).__bases__) ?

  • A. (<class 'object'>)
  • B. (<class 'dict'>)
  • C. (<class 'type'>, <class 'object'>)
  • D. (<class 'dict'>, <class 'object'>)
A

Les dictionnaires en Python sont des instances de la classe dict, et la base directe de dict est object.

Question 12 sur 20

12. Que fait la méthode __eq__() ?

  • A. Définit le comportement de l'égalité entre deux objets.
  • B. Définit le comportement de l'addition entre deux objets.
  • C. Définit le comportement de la soustraction entre deux objets.
  • D. Définit le comportement de la multiplication entre deux objets.
A

La méthode __eq__() est utilisée pour définir le comportement de l'égalité (==) entre deux objets.

Question 13 sur 20

13. Que fait la méthode __repr__() ?

  • A. Retourne une chaîne de caractères représentant l'objet pour le développeur.
  • B. Retourne une chaîne de caractères représentant l'objet pour l'utilisateur.
  • C. Retourne une chaîne de caractères pour la documentation de l'objet.
  • D. Retourne une chaîne de caractères vide.
A

La méthode __repr__() est utilisée pour retourner une représentation de l'objet destinée au développeur, généralement plus détaillée que la méthode __str__().

Question 14 sur 20

14. Quelle est la sortie de print(issubclass(bool, int)) ?

  • A. True
  • B. False
  • C. None
  • D. Error
A

En Python, bool est une sous-classe de int, donc issubclass(bool, int) renvoie True.

Question 15 sur 20

15. Que fait la méthode __contains__() dans une classe Python ?

  • A. Vérifie si un élément est présent dans l'objet.
  • B. Ajoute un élément à l'objet.
  • C. Supprime un élément de l'objet.
  • D. Retourne la longueur de l'objet.
A

La méthode __contains__() est utilisée pour vérifier si un élément est présent dans l'objet, généralement pour l'opérateur in.

Question 16 sur 20

16. Quelle est la sortie de print(type([1, 2, 3]).__mro__) ?

  • A. (<class 'list'>, <class 'object'>)
  • B. (<class 'object'>, <class 'list'>)
  • C. (<class 'type'>, <class 'list'>, <class 'object'>)
  • D. (<class 'list'>, <class 'type'>, <class 'object'>)
A

La méthode __mro__ pour la classe list retourne l'ordre de résolution des méthodes. Pour la classe list, c'est <class 'list'>, <class 'object'>.

Question 17 sur 20

17. Que fait la méthode __getitem__() ?

  • A. Retourne un élément à partir de l'index spécifié.
  • B. Définit un élément à un index spécifié.
  • C. Supprime un élément à un index spécifié.
  • D. Retourne la longueur de l'objet.
A

La méthode __getitem__() est utilisée pour obtenir un élément à partir de l'index spécifié dans les objets comme les listes et les dictionnaires.

Question 18 sur 20

18. Que fait la méthode __setattr__() ?

  • A. Définit un attribut sur l'objet.
  • B. Supprime un attribut sur l'objet.
  • C. Retourne un attribut de l'objet.
  • D. Initialise l'objet avec des attributs.
A

La méthode __setattr__() est utilisée pour définir un attribut sur l'objet. Elle est appelée lorsque l'on assigne une valeur à un attribut.

Question 19 sur 20

19. Quelle est la sortie de print(dir(int)) ?

  • A. Liste des attributs et méthodes de la classe int
  • B. Liste des objets de la classe int
  • C. Liste des sous-classes de la classe int
  • D. Liste des instances de la classe int
A

La fonction dir() retourne une liste des attributs et méthodes de l'objet ou de la classe spécifiée. Pour int, elle retourne la liste des attributs et méthodes de la classe int.

Question 20 sur 20

20. Que fait la méthode __iter__() ?

  • A. Rend l'objet itérable.
  • B. Retourne la longueur de l'objet.
  • C. Définit un élément à un index spécifié.
  • D. Initialise un attribut sur l'objet.
A

La méthode __iter__() rend l'objet itérable en retournant un itérateur pour l'objet. Cette méthode est essentielle pour les objets que vous souhaitez utiliser dans des boucles for.

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.