Constructeurs Python

Constructeurs Python

Introduction

À présent, vous devriez être familier avec la façon dont les cours de base fonctionnent à Python. Si les cours étaient exactement ce que vous avez vu, ils seraient assez rigides et pas si utiles.

Heureusement, les cours sont bien plus que ça. Ils sont conçus pour être beaucoup plus adaptables et peuvent prendre des informations pour façonner l'apparence initiale. Toutes les voitures ne commencent pas exactement la même chose, et les classes ne devraient pas non plus. Après tout, à quel point serait-il horrible si chaque voiture était une Ford Pinto orange 71 '? Ce n'est pas une bonne situation.

Écrire une classe

Commencez par configurer une classe comme celle du dernier guide. Cette classe évoluera au cours de ce guide. Il passera d'une situation rigide, semblable à une photocopie, à un modèle qui peut générer plusieurs objets uniques dans le contour de la classe.

Écrivez la première ligne de la classe, la définissant comme une classe et la nommer. Ce guide va s'en tenir à l'analogie de la voiture avant. N'oubliez pas de passer votre classe objet pour qu'il étend la base objet classe.

voiture de classe (objet): 

En dessous, indent et créez vos variables. Habituellement, les variables de classe sont regroupées près du haut de la classe et les méthodes sont maintenues ci-dessous. Ce n'est pas strictement obligatoire, mais cela aide à garder le code soigné. Créez uniquement des variables pour la marque, le modèle, l'année, le kilométrage et la couleur. Il est inutile de construire une classe super détaillée.

Make = "Ford" Model = "Pinto" Year = "1971" kilomage = "253812" Color = "Orange" 

À ce stade, vous pouvez tester vos variables pour vous assurer que votre classe fonctionne correctement. Créez et objet, et essayez d'imprimer le modèle de votre voiture. Ensuite, réaffectez la variable du modèle et imprimez à nouveau.

mycar = car () imprimer ("ma voiture est un% s"% mycar.modèle) MyCar.Print Model = "Mustang" ("Ma voiture est un% S"% MyCar.modèle) 

C'est une mise à niveau, mais votre voiture ne peut toujours rien faire. Il est temps d'ajouter une méthode. Créer une nouvelle méthode dans votre classe appelée Avance qui accepte une variable appelée «vitesse."Ensuite, faites-le imprimer le modèle de votre voiture et à quelle vitesse il va. N'oubliez pas d'inclure soi.

Def move_forward (self, Speed): Print ("Votre% S va de l'avant à% s"% (self.modèle, vitesse)) 

Testez cela avec votre classe.

ma voiture.Move_Forward ("25MPH") 

Tout devrait bien se passer, et votre voiture devrait fonctionner.

Créer un constructeur

Changer les variables après la création d'un objet est maladroit et inefficace. Non seulement vous perdez du temps, mais il gonfle également votre code. Cela est particulièrement vrai si vous créez plusieurs instances de la même classe et modifiez chacun.

Il y a un concept dans la programmation orientée objet appelée constructeur. Les constructeurs sont des méthodes spéciales qui permettent à un objet de prendre des arguments lorsqu'il est créé et réalise automatiquement des actions. Ils sont généralement utilisés pour attribuer des variables au moment où un objet est instancié.

Dans le cas de Python, vous créez un constructeur comme vous le feriez pour n'importe quelle autre méthode, en utilisant dev, Mais chaque constructeur a le même nom, __init__. Vous pouvez penser à __init__ comme étant court pour initialiser car il est exécuté lorsque l'objet est initialisé.

Créez un constructeur pour votre voiture qui prend toutes les variables en tant que paramètres et les attribue aux variables d'instance avec soi. Une variable d'instance n'est qu'une variable qui existe dans une instance spécifique d'un objet.

def __init __ (self, make, modèle, année, kilométrage, couleur): soi.faire = se faire de soi.modèle = modèle de soi.année = an soi-même.kilométrage = soi-même.couleur = couleur 

Assurez-vous de supprimer les anciennes déclarations variables. Tu n'as plus besoin d'eux.

Utilisation du constructeur

Exécutez à nouveau votre code et voyez ce qui se passe. Si vous avez une erreur, vous le faites correctement. Maintenant, chaque fois que vous créez une instance de Voiture(), Vous devez passer suffisamment d'arguments pour correspondre aux paramètres que vous avez spécifiés.

Revenez en arrière et modifiez l'instanciation du ma voiture Pour le faire passer les arguments requis.

MyCar = Car ('Dodge', 'Challenger', '2017', 1500, 'Black')

Exécutez à nouveau votre code. Tout devrait fonctionner, et vous devriez avoir une autre voiture en marche.

Comme vous l'avez déjà vu, ce n'est pas le système parfait. Et si vous voulez toujours un modèle par défaut, vous n'avez donc pas à passer dans chaque argument? Tu peux absolument faire ça aussi. Il vous suffit de définir chaque paramètre de votre constructeur égal à la valeur que vous souhaitez être sa valeur par défaut.

def __init __ (self, Make = 'Ford', Model = 'Pinto', année = '1971', kilométrage = '253812', color = 'orange'): self.faire = se faire de soi.modèle = modèle de soi.année = an soi-même.kilométrage = soi-même.couleur = couleur 

Si vous créez une nouvelle instance de Voiture() Et ne le dépasse rien, cela réalisera à nouveau votre bon vieux Ford Pinto. Essayez de les comparer côte à côte pour voir la différence.

myCar = car () myNewCar = Car ('Dodge', 'Challenger', '2017', 1500, 'Black') MyCar.MOVE_FORWARD ('25MPH') MYNEWCAR.Move_Forward ('85MPH') 

Réflexions de clôture

Ça sucerait si chaque voiture était une Ford Pinto de 71 '. C'est la même chose pour les objets. Si vous deviez créer une nouvelle classe comme modèle pour chaque variation d'un objet, il n'y aurait vraiment pas de valeur dans la programmation orientée objet. Les constructeurs permettent aux cours d'être beaucoup plus fluides et adaptables. Vous pouvez créer autant de nouvelles instances différentes d'un objet que vous avez besoin de la même classe sans jamais avoir à revenir en arrière et à changer quoi que ce soit.

Entraînez-vous à faire une nouvelle classe et à ajouter un constructeur, puis à utiliser un peu cette classe dans votre script.

Des exercices

  1. Créer une nouvelle classe appelée «Computer."
  2. Créer un constructeur pour «ordinateur» qui prend quatre variables.
  3. Imprimez l'une de vos variables. Réaffectez sa valeur et imprimez à nouveau.
  4. Faire une méthode qui utilise au moins deux de vos variables.
  5. Implémentez un constructeur pour «ordinateur» qui accepte toutes vos variables.
  6. Créez une nouvelle instance de «ordinateur» et passez-le les bons arguments.
  7. Exécutez votre méthode sur la nouvelle instance de «Computer."
  8. Ajouter des valeurs par défaut au constructeur «Computer».
  9. Créer une instance vide de «Computer."
  10. Exécutez votre méthode sur la nouvelle instance vide.

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Masterring Bash Script Loops
  • Système linux hung? Comment s'échapper vers la ligne de commande et…
  • Boucles imbriquées dans les scripts bash
  • Ubuntu 20.04 Guide
  • Tutoriel de débogage GDB pour les débutants
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…