Python est utilisé dans tout, du Raspberry Pi à l'apprentissage automatique. Cependant, si vous souhaitez travailler sur un grand projet, vous devez savoir comment Python fonctionne avec la programmation orientée objet (POO). Cet article couvrira les bases que vous devez connaître.
Si vous n'êtes pas passionné par la programmation, pourquoi ne pas jeter un coup d'œil à ces meilleurs croquis de Monty Python à la place ? Ils ont inspiré la langue, après tout !
Mettons une chose au clair :Python EST un vrai langage de programmation, il est populaire et il se développe rapidement. Ce n'est pas parce qu'il se lit comme un pseudocode et que vous pouvez coder Minecraft sur le Pi avec, que vous devez le considérer comme un langage inférieur.
La POO est la pierre angulaire du développement logiciel moderne, et Python est plus que capable de suivre le rythme. Il peut faire une ou deux choses différemment des autres langages traditionnels, mais ne vous laissez pas décourager.
Ce didacticiel supposera une connaissance de base de Python, mais nous couvrirons tous les éléments complexes en cours de route. Si vous débutez avec Python, pourquoi ne pas regarder ces astuces pour apprendre un nouveau langage de programmation, ou que diriez-vous d'un projet simple comme lire et écrire dans Google Sheets avec Python ?
Avant de commencer, vous souhaiterez peut-être configurer votre environnement de développement Python. Nous utiliserons Python 3.6.5, et bien que vous puissiez utiliser des versions plus anciennes, vous aurez moins de problèmes à suivre si vous utilisez une version relativement nouvelle.
Vous voudrez créer un environnement virtuel si vous n'en avez pas déjà un et installer PIP pour Python s'il n'est pas installé (il est fourni avec la plupart des installations modernes de Python). Une fois que vous avez ces configurations, vous serez prêt à partir. Commençons !
Une classe est le bloc de construction de base de la POO. Une classe est comme un plan ou un plan. Ils définissent les caractéristiques d'un objet. Si vous avez une classe de voiture, par exemple, elle peut indiquer qu'il y a quatre roues, au moins un siège et un moteur.
Voici comment créer une classe en Python :
véhicule de classe :
""" Cette classe définit les véhicules. """
passe
Simple non ? Il se passe quelques choses ici. Remarquez le commentaire en haut de la classe. Ceci est un commentaire spécial appelé docstring . Il devrait expliquer un peu votre code. En utilisant les guillemets triples (""" ), vous dites à Python qu'il s'agit d'une docstring.
La passe mot-clé indique à Python de ne rien faire. C'est un mot spécial, et vous pouvez le considérer comme une tâche. Cela fera exécuter votre code, mais il ne fait rien en fait.
Si vous exécutez ce code, vous verrez que rien ne se passe. Vous devez instancier tu classe. Il s'agit en fait d'aller construire un objet sur la base du plan défini dans la classe. Vous pouvez créer autant de copies que vous le souhaitez, chacune avec des propriétés différentes. Voici comment procéder :
red_car =Véhicule()
Si vous exécutez à nouveau ceci, vous verrez que rien ne se passe. Le code fonctionne correctement, mais vous ne lui avez pas dit de faire quoi que ce soit de notable. Le Véhicule la classe définit les plans d'un véhicule, et cette dernière ligne crée un objet véhicule et lui donne le nom de red_car .
Il est possible de créer autant d'objets que vous le souhaitez :
red_car =Véhicule()
green_car =Véhicule()
blue_car =Véhicule()
Ajoutons un peu plus de code. Ajoutez une méthode appelée __init__ au Véhicule classe :
véhicule de classe :
""" Cette classe définit les véhicules. """
def __init__(self, color='plain'):
""" Configurez des propriétés de voiture personnalisées """
print('Nouvelle voiture faite !')
self.color =couleur
voiture_rouge =Véhicule()
green_car =Véhicule()
blue_car =Véhicule()
Portez une attention particulière à cette __init__ méthode. Il doit commencer et se terminer par deux traits de soulignement. Il s'agit d'une méthode spéciale en Python. Il est appelé automatiquement lorsque vous créez un nouvel objet. L'exécution de ce code affichera les mots "Nouvelle voiture fabriquée !" trois fois.
Enfin, __init__ prend un argument personnalisé appelé couleur . Le signe égal et la chaîne qui suit immédiatement indiquent à Python de définir la couleur sur "plain" si elle n'est pas spécifiée. Vous pouvez modifier vos instances pour configurer la couleur de votre voiture à la création :
red_car =Véhicule(color='red')
green_car =Véhicule(color='green')
blue_car =Véhicule(color='blue')
Si vous imprimez la couleur de la voiture, vous verrez que chaque instance a une couleur différente, même si les trois ont été fabriquées selon la même spécification (la classe). Python vous permet d'accéder à presque n'importe quelle variable ou objet --- peu d'autres langages vous permettent de faire cela :
imprimer(red_car.color)
impression(green_car.color)
imprimer(blue_car.color)
Cela fonctionne parce que vous avez attribué une couleur à self.color . Self est un autre mot-clé spécial en Python, et il fait référence à chaque instance spécifique d'une classe. Chaque fois que vous utilisez self, vous pouvez définir ou accéder à des données uniques à cette instance. La voiture rouge a une couleur de rouge, par exemple.
Modifiez votre __init__ méthode pour stocker le bruit de la voiture dans une variable :
self.noise ='Vroooom'
Pour imprimer le bruit de la voiture, vous pouvez simplement accéder au bruit variable, comme vous l'avez fait avec la couleur, mais ce n'est pas la meilleure idée. Et si, lorsque vous conduisez une voiture, vous vouliez qu'un autre code s'exécute en même temps, peut-être un code que vous n'avez pas encore écrit ? Ou que se passe-t-il si vous voulez changer la conduite d'une voiture à l'avenir ? En créant une fonction (également appelée méthode ), vous pouvez contrôler étroitement le fonctionnement des choses. Ajoutez ceci sous votre __init__ méthode :
def drive(self) :
print(self.noise)
Vous pouvez appeler cette méthode assez simplement :
red_car.drive()
Chaque fois que vous appelez le drive méthode, Python imprimera le son. Vous pouvez l'étendre pour effectuer toutes les tâches, mais laissez-le tel quel pour le moment.
Bien joué! À présent, vous devriez avoir une bonne maîtrise des bases. Vous devriez pouvoir créer et utiliser vos propres classes, chacune avec ses propres capacités et fonctions uniques.
Les objets privés sont très courants dans la plupart des autres langages. Ce sont simplement des variables ou des fonctions qui ne sont pas accessibles en dehors de la classe. Il peut s'agir d'un code nécessitant des conditions particulières avant utilisation, ou simplement conçu pour un usage interne uniquement. Quelle que soit la raison, les instances ne peuvent pas accéder aux membres privés... sauf si vous codez en Python.
Python n'a pas de membres privés. Au lieu de cela, Python s'appuie sur un système d'honneur :"Nous sommes tous des adultes consentants." Les programmeurs Python comprennent que vous pouvez vouloir bricoler avec les éléments internes sensibles d'une classe, et ce n'est pas grave, donc rien ne devrait jamais être vraiment inaccessible.
Cependant, Python a une convention acceptée pour marquer certaines variables comme "privées" dans le sens de "Cette variable est à usage interne et vous n'avez probablement pas besoin d'y toucher". La convention est de préfixer les noms de variables avec un trait de soulignement :
_some_secret_variable =42
Cela agit comme un avertissement pour les autres programmeurs. Python ne vous empêchera pas d'y accéder, mais le trait de soulignement vous indique que cela n'a pas été conçu pour être utilisé de cette façon et que vous devez continuer à vos risques et périls.
C'est parfois la façon Python de bricoler avec des choses cachées, mais vous courez le risque que les choses ne fonctionnent pas correctement.
L'héritage est un autre moyen de réduire la duplication et de réutiliser le code. En pensant à une relation parent-enfant, l'héritage permet à l'enfant pour partager le code commun avec le parent . Implémentons une voiture électrique, qui hérite du parent.
Ajoutez ce code sous votre Véhicule classe :
class ElectricCar(Vehicle):
""" Classe de véhicule électrique. """
def charge(self):
imprimer('Zzz')
electric_car =ElectricCar()
electric_car.charge()
electric_car.noise ='Whoosh'
electric_car.drive()
Après la voiture électrique est défini, le Véhicule la classe est spécifiée entre deux crochets. Cela indique à Python que ElectricCar est un enfant de Véhicule . Cela lui donne accès à toutes les données et méthodes fournies dans Véhicule .
La voiture électrique a ses propres méthodes spéciales. Il peut charger (ce que les autres véhicules ne peuvent pas faire). En modifiant le bruit de la voiture, puis en conduisant, vous pouvez voir que la voiture électrique émet un son différent et que vous n'avez pas eu à définir la méthode de conduite. C'est parce que le lecteur est hérité du parent.
Ces exemples ont montré à quel point la POO peut être simple en Python. Nous n'avons couvert que les bases, mais une fois que vous les maîtrisez, le reste est facile.
Si vous souhaitez continuer à apprendre Python, ou peut-être mettre en pratique ces compétences POO, pourquoi ne pas jeter un œil aux tableaux et aux listes en Python, ou pourquoi ne pas faire communiquer Python et JavaScript ?
Si tout cela vous donne envie d'en savoir plus, n'oubliez pas de consulter ces meilleurs sites Web pour apprendre Python.