Dans un langage orienté objet, une classe est un morceau de code extensible qui représente un modèle pour créer et utiliser les objets de cette classe. Un objet d'une classe fait simplement référence à une instance de la classe définie.
Principes de base de la classe Python
Dans le langage de programmation Python, chaque élément de données est représenté comme une instance d'une classe. Si vous ne connaissez pas la langue, consultez notre guide du débutant sur Python avant de passer à autre chose.
Une classe fournit un ensemble de comportements sous la forme de fonctions membres (également appelées méthodes), qui ont des implémentations communes à toutes les instances de cette classe, et il détermine également la manière dont les informations d'état de son instance sont représentées sous la forme de les attributs.
Lire la suite: Méthodes de classe en Python: les différences importantes
Le code ci-dessous représente un exemple de classe définie en Python. La classe définie dans le code fournit une implémentation d'une classe RaceCar.
Chaque instance de la classe fournit un modèle simple pour différentes marques de voitures et contient l'état suivant informations: nom de la voiture, nom du conducteur, numéro de plaque d'immatriculation de la voiture, vitesse actuelle, frais pour excès de vitesse, et Couleur.
Cette classe de voiture modélise un capteur spécial dans chaque voiture qui enregistre une amende de 50 $ contre le conducteur de la voiture s'il dépasse la limite de vitesse légale de 140 miles par heure.
Exemple de classe (classe de voiture)
voiture de classe:
#Constructeur
#la méthode init est responsable de l'initialisation des valeurs de l'instance #variables dans la classe.
def __init __ (soi, nom_de_voiture, nom_du_pilote, numéro_plate_du_ permis,
current_speed, speeding_charge, color):
self.car_name = nom_voiture
self._driver_name = nom_pilote
self._license_plate_number = license_plate_number
self._current_speed = vitesse_courante
self._speeding_charge = speeding_charge
self._colour = couleur
# Méthodes d'accès
#La méthode get_car_name renvoie le nom de la voiture
def get_car_name (soi):
retourne self._car_name
# La méthode get_driver_name renvoie le nom du pilote
def get_driver_name (soi-même):
retourne self._driver_name
#La méthode get_license_plate renvoie la plaque d'immatriculation de la voiture
def get_license_plate (soi):
retourne self._license_plate
#La méthode get_current_speed renvoie la vitesse actuelle à laquelle la voiture #move
def get_current_speed (auto):
retourne self._current_speed
#La méthode get_speeding_charge renvoie le montant total d'argent que le
#driver doit payer pour excès de vitesse
def get_speeding_charge (auto):
retourne self._speeding_charge
#La méthode get_colour renvoie la couleur de notre douce balade!
def get_colour (soi):
retourne self._colour
Méthodes #Mutator
#La valeur set_driver change le conducteur de notre voiture.
def set_driver (self, new_driver):
self._driver_name = nouveau_pilote
La méthode #The speeding_ticket garantit que le conducteur est facturé 50 dollars quand # il ou elle a pris une vitesse supérieure à 140 miles par heure :(
def speeding_ticket (self, current_speed):
si current_speed <= 140:
retourne False
autre:
self._speeding_charge + = 50
retourne True
#La méthode make_payment garantit que le conducteur est en mesure de payer tout le # montant qu'il doit pour les frais d'excès de vitesse.
def make_payment (self, amount_paid):
self._speeding_charge - = montant_payé
Une explication de l'exemple de classe Python
Le paramètre "Self"
Tout d'abord, notez qu'il existe une différence entre la signature de méthode déclarée dans la classe et la signature de méthode utilisée par le programmeur pour appeler la fonction. Par exemple, le get_colour La méthode définie dans la classe prend un paramètre qui est le paramètre «self».
Cependant, lorsque le programmeur appelle cette méthode sur une instance de la classe, il ne fournit aucun paramètre. Ce même phénomène peut être observé dans la méthode speeding_ticket qui est définie pour prendre deux paramètres dans la classe (i.e. self et current_speed), mais le programmeur est capable d'exécuter cette méthode en fournissant la valeur uniquement pour "current_speed" paramètre.
En effet, le but du paramètre «self» fourni est de lier la méthode à l’instance d’objet sur laquelle elle a été appelée et ce n’est pas une valeur à donner par le programmeur.
Le constructeur
Un constructeur d'une classe fait référence à la méthode de la classe qu'un utilisateur peut appeler pour créer une instance d'objet de cette classe. Dans la classe Car, l'utilisateur peut créer une instance d'objet à l'aide de la syntaxe suivante:
#création de notre propre Bugatti :)
Voiture («Bugatti», «David Sasu», 90828, 0, 0, «Cherry Red»)
L'exécution de ce code entraîne un appel à la méthode __init__ dans la classe Car. La responsabilité de cette méthode est de générer un objet voiture de crédit nouvellement créé avec les valeurs d'instance fournies. Chaque objet de la classe Car est constitué de six variables d'instance qui sont:
- _nom_voiture
- _nom du conducteur
- _plaque d'immatriculation
- _vitesse actuelle
- _speeding_charge
- _Couleur
Méthodes d'accesseur
Ce sont des méthodes écrites pour accéder aux informations d'état d'une instance d'objet. Dans la classe Car, les méthodes d'accès qui ont été écrites sont:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Méthodes de mutation:
Ce sont des méthodes écrites pour modifier les informations d'état d'une instance d'objet. Dans la classe Car, les méthodes de mutation qui ont été écrites sont:
- set_driver
- excès de vitesse
- effectuer le paiement
Le concept d'encapsulation
«Encapsulation» est un terme utilisé pour décrire un principe de conception orientée objet où les composants d’un programme ne doivent pas révéler les détails internes de leurs implémentations respectives. Pour approfondir votre compréhension du concept d'encapsulation, consultez notre article sur l'encapsulation.
Vérification des erreurs
Notre implémentation de la classe Car n'est pas robuste car elle est susceptible de planter ou de mal fonctionner en fonction de l'entrée qu'elle reçoit du programmeur.
Tout d'abord, notez que nous ne vérifions pas les types des paramètres des méthodes speeding_ticket et make_payment, ni que nous ne vérifions les types d'aucun des paramètres du constructeur. Cela pourrait entraîner le blocage du programme si l'utilisateur fournit un argument qui n'était pas attendu. Par exemple, si l'utilisateur effectue un appel tel que speeding_ticket («chips ahoy»), le programme planterait parce que le type attendu par la méthode était un entier et non une chaîne.
Vous comprenez maintenant les bases des classes Python
Dans cet article, vous avez découvert le concept de classe Python et d'objet de classe Python. Vous avez également été initié aux idées sur lesquelles une classe python est construite, telles que: l'encapsulation, l'identifiant 'self', les méthodes d'accès et les méthodes mutator.
Avec ces informations, vous devriez pouvoir créer vous-même une classe Python simple et la tester :)
Vous devrez maintenant vérifier votre identité via votre appareil mobile pour associer votre compte sur le bureau et l'application Web.
- Programmation
- Python
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Un pas de plus…!
Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.