0% ont trouvé ce document utile (0 vote)
1 vues5 pages

Correction QCM POO Python Explication

Ce document est une correction commentée d'un QCM sur la Programmation Orientée Objet (POO) en Python, comprenant 80 questions avec les réponses correctes. Les thèmes abordés incluent la définition des classes, l'encapsulation, l'héritage, le polymorphisme, et la gestion des exceptions. Chaque question est accompagnée d'une explication succincte des concepts clés de la POO.

Transféré par

mehdi.fathallah02
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues5 pages

Correction QCM POO Python Explication

Ce document est une correction commentée d'un QCM sur la Programmation Orientée Objet (POO) en Python, comprenant 80 questions avec les réponses correctes. Les thèmes abordés incluent la définition des classes, l'encapsulation, l'héritage, le polymorphisme, et la gestion des exceptions. Chaque question est accompagnée d'une explication succincte des concepts clés de la POO.

Transféré par

mehdi.fathallah02
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Correction Commentée — QCM Programmation Orientée Objet (POO) en

Python
Q1. Réponse correcte : B — La POO permet de structurer le code autour des objets, facilitant
sa réutilisation et sa maintenance.

Q2. Réponse correcte : C — La bonne syntaxe pour définir une classe est : class NomClasse:.
Les autres sont incorrectes.

Q3. Réponse correcte : B — Le mot-clé 'def' est utilisé pour définir une méthode dans une
classe comme pour les fonctions.

Q4. Réponse correcte : C — __init__ est la méthode spéciale appelée automatiquement à la


création d’un objet.

Q5. Réponse correcte : C — L’encapsulation permet de cacher les données internes pour
protéger l’état de l’objet.

Q6. Réponse correcte : C — Pour créer un objet, on instancie la classe en l’appelant comme
une fonction : MaClasse().

Q7. Réponse correcte : C — Un seul underscore _ indique une convention de protection,


mais l’attribut reste accessible (protégé).

Q8. Réponse correcte : C — Le polymorphisme permet d’utiliser des méthodes du même


nom avec différents comportements.

Q9. Réponse correcte : A — Un attribut de classe est partagé entre toutes les instances de
cette classe.

Q10. Réponse correcte : B — __str__ permet d’obtenir une représentation lisible de l’objet
destinée à l’utilisateur.

Q11. Réponse correcte : B — L’héritage permet aux classes enfants de réutiliser les
méthodes/attributs de la classe parente.

Q12. Réponse correcte : B — Le polymorphisme permet à différentes classes d’utiliser la


même interface avec des comportements différents.

Q13. Réponse correcte : C — Une classe abstraite ne peut pas être instanciée directement.
Elle sert de modèle pour d’autres classes.

Q14. Réponse correcte : A — On définit une interface en héritant d’une classe avec des
méthodes non implémentées (classe abstraite).

Q15. Réponse correcte : D — Le polymorphisme permet d’utiliser des méthodes avec le


même nom mais des comportements différents.
Q16. Réponse correcte : B — super() permet d’accéder à la classe parente et d’appeler son
constructeur ou ses méthodes.

Q17. Réponse correcte : C — Python permet l’héritage multiple (une classe peut hériter de
plusieurs classes parentes).

Q18. Réponse correcte : A — L’abstraction consiste à cacher les détails internes pour ne
montrer que l’essentiel à l’utilisateur.

Q19. Réponse correcte : C — __str__ est destiné à l’utilisateur, __repr__ au développeur


(débogage, représentation technique).

Q20. Réponse correcte : B — Un attribut avec deux underscores __ est privé (name
mangling).

Q21. Réponse correcte : C — self représente l’instance courante et permet d’accéder aux
attributs et méthodes de l’objet.

Q22. Réponse correcte : C — Le module 're' est utilisé pour manipuler les expressions
régulières.

Q23. Réponse correcte : A — [Link]() permet de rechercher un motif dans une chaîne.

Q24. Réponse correcte : C — try...except permet de gérer les erreurs d’exécution


(exceptions).

Q25. Réponse correcte : A — Une exception personnalisée s’écrit en héritant de Exception :


class MonErreur(Exception):

Q26. Réponse correcte : B — Le bloc finally est toujours exécuté, que l’exception soit levée
ou non.

Q27. Réponse correcte : C — raise permet de lever une exception manuellement.

Q28. Réponse correcte : B — SyntaxError est une erreur de syntaxe qui empêche l’exécution
du programme.

Q29. Réponse correcte : C — On peut gérer plusieurs exceptions en les regroupant dans un
tuple dans except.

Q30. Réponse correcte : A — Une recherche avec [Link]() retourne un objet MatchObject.

Q31. Réponse correcte : C — import os est la syntaxe correcte pour importer un module en
Python.

Q32. Réponse correcte : B — Le module os permet de manipuler les fichiers et dossiers


(répertoires).

Q33. Réponse correcte : B — pip install numpy installe la bibliothèque numpy depuis PyPI.
Q34. Réponse correcte : D — open(file).read() ouvre un fichier et lit son contenu.

Q35. Réponse correcte : B — numpy est optimisé pour les calculs numériques et
scientifiques.

Q36. Réponse correcte : C — Le module time permet de manipuler le temps (pause, temps
écoulé, etc.).

Q37. Réponse correcte : B — [Link]() est utilisé pour écrire dans un fichier ouvert en
mode écriture.

Q38. Réponse correcte : B — [Link]() liste les fichiers d’un dossier.

Q39. Réponse correcte : D — Tout fichier Python (.py) est un module sans avoir besoin d’un
mot-clé spécifique.

Q40. Réponse correcte : B — json est le module standard pour manipuler des fichiers JSON.

Q41. Réponse correcte : A — Une classe est un plan, un objet est une instance (réalisation)
de cette classe.

Q42. Réponse correcte : B — Instancier signifie créer un objet à partir d’une classe.

Q43. Réponse correcte : A — Un double underscore au début __ indique un attribut privé


(name mangling).

Q44. Réponse correcte : B — @classmethod permet de créer une méthode liée à la classe
plutôt qu’à l’instance.

Q45. Réponse correcte : B — __del__ est appelée avant la suppression de l’objet pour
nettoyage.

Q46. Réponse correcte : B — @staticmethod définit une méthode indépendante de la classe


et de l’instance (pas de self).

Q47. Réponse correcte : A — L’héritage multiple est utilisé lorsqu’une classe hérite de
plusieurs autres.

Q48. Réponse correcte : B — MRO est l’ordre dans lequel Python résout les méthodes dans
l’héritage multiple.

Q49. Réponse correcte : B — Une méthode redéfinie dans une classe enfant écrase celle de
la classe parente.

Q50. Réponse correcte : A — Le polymorphisme ad hoc correspond à la surcharge de


méthodes (même nom, signature différente).

Q51. Réponse correcte : A — isinstance(obj, Classe) retourne True si obj est une instance de
Classe ou d’une sous-classe.
Q52. Réponse correcte : C — getattr(obj, "attribut") renvoie la valeur de l’attribut si présent.

Q53. Réponse correcte : D — __call__ permet de rendre un objet appelable comme une
fonction.

Q54. Réponse correcte : B — __attribut est privé grâce au name mangling de Python.

Q55. Réponse correcte : C — L’encapsulation limite l’accès direct aux données internes.

Q56. Réponse correcte : B — from math import sqrt importe uniquement la fonction sqrt du
module math.

Q57. Réponse correcte : A — dir() retourne les attributs et méthodes disponibles d’un objet
ou d’un module.

Q58. Réponse correcte : A — [Link]() ferme proprement un fichier ouvert.

Q59. Réponse correcte : B — datetime est le module le plus complet pour gérer les dates et
heures.

Q60. Réponse correcte : B — python -m venv nom_env crée un environnement virtuel local.

Q61. Réponse correcte : B — @property transforme une méthode en attribut accessible


sans ().

Q62. Réponse correcte : A — @abstractmethod oblige les sous-classes à implémenter la


méthode.

Q63. Réponse correcte : A — En héritant de [Link], on empêche l’instanciation directe de


la classe.

Q64. Réponse correcte : B — abc est le module standard pour les classes abstraites.

Q65. Réponse correcte : __del__ — __del__ est la méthode spéciale appelée avant la
destruction d’un objet.

Q66. Réponse correcte : D — Une classe enfant s’écrit : class Fille(Mere):

Q67. Réponse correcte : A — if __name__ == "__main__": permet d’exécuter du code


uniquement si le fichier est lancé directement.

Q68. Réponse correcte : C — [Link](obj) crée une copie superficielle d’un objet.

Q69. Réponse correcte : B — __methode() définit une méthode privée grâce au name
mangling.

Q70. Réponse correcte : A — hasattr(obj, "attr") retourne True si l’attribut existe dans
l’objet.
Q71. Réponse correcte : A — SOLID regroupe 5 principes pour améliorer la qualité et la
maintenabilité du code orienté objet.

Q72. Réponse correcte : B — Un faible couplage signifie que les classes sont peu
dépendantes les unes des autres.

Q73. Réponse correcte : B — Le pattern Singleton garantit qu’une classe n’ait qu’une seule
instance.

Q74. Réponse correcte : B — La composition consiste à intégrer une instance d’une classe
dans une autre comme attribut.

Q75. Réponse correcte : B — unittest est utilisé pour créer des tests unitaires automatisés.

Q76. Réponse correcte : A — issubclass(SubClasse, SuperClasse) retourne True si la


première hérite de la seconde.

Q77. Réponse correcte : B — Une variable de classe est définie directement dans le corps de
la classe, hors méthode.

Q78. Réponse correcte : B — @classmethod permet de définir une méthode liée à la classe.

Q79. Réponse correcte : A — super() permet à une classe enfant d’appeler les méthodes de
sa classe parente.

Q80. Réponse correcte : B — pass est utilisé pour créer un bloc vide sans erreur (ex:
fonctions à compléter plus tard).

Vous aimerez peut-être aussi