QCM Python – Partie 31
Bienvenue dans notre QCM Python ! Que vous soyez débutant ou déjà expérimenté en programmation, ce questionnaire à choix multiples est l’occasion parfaite de tester vos connaissances en Python. Grâce à des questions couvrant tous les niveaux, vous pourrez évaluer votre maîtrise des concepts clés du langage, comme les structures de données, les fonctions, les modules et bien plus. Si vous cherchez à améliorer vos compétences ou à vous préparer pour un examen, ce QCM Python est fait pour vous. Lancez-vous et découvrez où vous en êtes !
1. Quelle est la principale différence entre l’héritage et la composition en POO ?
A L’héritage est plus flexible que la composition
B L’héritage crée des objets de types différents, tandis que la composition crée des objets de même type
C L’héritage crée une relation « est un », tandis que la composition crée une relation « a un »
D L’héritage permet de réutiliser du code, mais la composition ne le permet pas
2. Quel est le rôle de la méthode __del__ en Python ?
A Elle est appelée pour nettoyer les ressources quand un objet est supprimé
B Elle sert à initialiser un objet
C Elle est utilisée pour déclarer une méthode privée
D Elle permet de sérialiser un objet
3. Quelle méthode spéciale permet de définir la représentation sous forme de chaîne d’un objet en Python ?
A __repr__
B __str__
C __format__
D __display__
4. Quelle est la différence entre __str__ et __repr__ ?
A __str__ est destiné à une représentation lisible par l’utilisateur, tandis que __repr__ est destiné à une représentation non lisible.
B __str__ est destiné à des fins de débogage et __repr__ est destiné à l’affichage utilisateur.
C __str__ doit retourner une chaîne qui est lisible pour les développeurs, tandis que __repr__ doit retourner une chaîne compréhensible par l’utilisateur.
D __str__ est destiné à une représentation lisible par l’utilisateur, tandis que __repr__ doit retourner une chaîne qui, lorsqu’évaluée, crée un nouvel objet identique.
5. Quelle est la méthode appropriée pour rendre un attribut privé en Python ?
A Ajouter un double underscore au nom de l’attribut
B Utiliser le décorateur @private
C Utiliser un underscore simple au début du nom de l’attribut
D Ajouter un attribut protected
à la classe
6. Que se passe-t-il si une méthode est redéfinie dans une sous-classe en Python ?
A La méthode de la classe parente est toujours appelée.
B La méthode de la classe parente est ignorée.
C Les deux méthodes (de la classe parente et de la sous-classe) sont exécutées successivement.
D Il faut appeler la méthode de la classe parente explicitement via super().
7. Quelle est la différence entre @classmethod et @staticmethod en Python ?
A @staticmethod peut accéder à l’état de l’instance, tandis que @classmethod n’y a pas accès.
B @classmethod prend un paramètre cls, tandis que @staticmethod ne prend aucun paramètre spécial.
C @classmethod permet de modifier l’état de l’instance, tandis que @staticmethod permet de modifier l’état de la classe.
D @classmethod est utilisé pour des méthodes privées, tandis que @staticmethod est utilisé pour des méthodes publiques.
8. Quel est le principal problème de l’héritage multiple en Python ?
A Il est impossible d’hériter de plus d’une classe en Python.
B Les classes doivent être hiérarchisées dans un arbre binaire.
C Les classes multiples peuvent entraîner des conflits si plusieurs classes parentes définissent une méthode identique.
D L’héritage multiple ralentit les performances de l’application.
9. Quel est l’effet du mot-clé global dans une fonction ?
A Il permet d’accéder à des variables locales dans la fonction.
B Il permet de créer des variables locales dans une fonction.
C Il permet de modifier une variable globale depuis l’intérieur d’une fonction.
D Il empêche l’accès aux variables globales dans la fonction.
10. Quel est le moyen d’accéder à un attribut privé dans une classe Python ?
A Il est impossible d’accéder à un attribut privé en dehors de la classe
B Accéder directement à l’attribut en utilisant son nom
C Utiliser des méthodes spéciales comme getattr`
D Utiliser un accent grave