Python est un langage de programmation de haut niveau orienté objet. Orienté objet signifie que les objets sont les blocs de construction fondamentaux. Une propriété est un attribut d’un objet. Une méthode est une fonction associée à un objet. Une classe est comme un constructeur d’objet ou un « plan » pour créer des objets. Les propriétés et les méthodes sont appelées « attributs ». Cet article vous aidera à comprendre les classes et les objets en Python.

Tout cela peut sembler déroutant, mais il s’agit de quelques-uns des termes de base que l’on doit connaître avant de commencer à programmer en Python. Bien que l’apprentissage de la programmation en Python soit un défi, il vaut la peine d’apprendre à utiliser le langage Python en raison de sa facilité de création et de lecture. Python ressemble beaucoup à d’autres langages en ce sens que vous devez utiliser de nombreuses variables différentes pour effectuer différentes actions, mais Python fonctionne plus rapidement que les autres langages. Ces classes ont des propriétés et des méthodes, et les méthodes ont des attributs. C’est un peu comme une recette de cuisine : vous avez une liste d’ingrédients, les étapes de la création de l’objet et le résultat de la création de l’objet. Dans cet article, nous allons vous montrer ce que sont ces éléments, comment ils fonctionnent et quelques exemples. 

Classes

Une classe est une base sur laquelle une méthode s’exécute ; c’est le plan d’un objet. C’est un type de données défini par l’utilisateur qui permet de créer plusieurs objets contenant des attributs de données et des méthodes similaires. Ces objets peuvent ensuite être utilisés pour créer des instances. Une instance est un objet qui est créé à partir d’une classe. Une classe peut contenir des variables, des constantes, ainsi que d’autres méthodes qui peuvent être exécutées par l’objet de la classe. Si vous êtes familier avec C++, Java ou PHP, une classe n’est pas sans rappeler les structs. Un exemple de base d’une classe est présenté ci-dessous :

class MyClass:
  name = 'python'
  x = 5

L’instruction class crée une nouvelle définition de classe. Le nom de la classe suit immédiatement le mot-clé class suivi de deux points, comme indiqué.

Objets

Les objets sont tout ce qui permet de définir une partie spécifique de l’état et vous donne des procédures pour la manipuler. Il y a de fortes chances que vous ayez déjà utilisé des objets, au moins implicitement, car de nombreux types intégrés dans Python se comportent comme des objets (par exemple, les entiers, les chaînes de caractères, les listes). Vous avez peut-être aussi entendu le mot « interface » de temps en temps, peut-être avec une connotation dédaigneuse, peut-être pas. Pour l’instant, tout ce que vous devez savoir, c’est qu’il s’agit aussi d’objets. 

Nous pouvons utiliser la classe MyClass pour créer un objet nommé p1, et imprimer la valeur de x :

p1 = MyClass()
print(p1.x) 

Attributs et méthodes en Python :

Une classe en soi n’est d’aucune utilité. Une classe est une collection de codes connexes appelés attributs. Pour travailler avec une classe et ses attributs, il faut définir une série d’opérations appelées fonctions, qui sont associées à des valeurs spécifiques contenues dans les attributs. Les classes fournissent uniquement une structure et une forme abstraite de stockage des données.

Par exemple, vous pouvez définir une classe avec le nom MyClass et ajouter une variable appelée name et y placer une chaîne de caractères, comme indiqué :

class MyClass:
    name = "python"

Les attributs de classe sont des variables d’une classe qui sont partagées entre toutes ses instances. C’est ce qu’on appelle l’instanciation de l’objet. Vous pourrez alors accéder aux attributs (variables) présents à l’intérieur de la classe en utilisant l’opérateur point « . ». Par exemple, dans l’exemple MyClass ci-dessus, vous pouvez accéder au nom de l’attribut de la classe MyClass.

MyClass = MyClass()

print(MyClass.name)
python

De même, si un attribut (une variable) est censé être associé à une instance d’une classe, vous devez définir une fonction dans votre classe qui accédera à cet attribut pour exécuter diverses fonctions. Ces fonctions sont appelées méthodes et lorsque vous les définissez, vous devez généralement fournir le mot-clé self comme premier argument, car il s’agit d’un type spécial de variable locale utilisée pour se référer à elle-même dans cette méthode donnée.

For example, you can define a class MyClass, which has one attribute name and one method change_name. The method change name will take in an argument new_name along with the keyword self.

class MyClass:
    name = "python"
def change_name(self, new_name):
    self.name = new_name

Par exemple, vous pouvez définir une classe MyClass, qui possède un attribut name et une méthode change_name. La méthode change_nom prendra un argument new_name ainsi que le mot-clé self.

MyClass = MyClass()

print(MyClass.name)
python

MyClass.change_name("anaconda")
print(MyClass.name)
anaconda

Fonctions avancées orientées objet

Python se distingue en étant l’un des principaux langages que l’on peut utiliser pour créer de la POO. Python peut modifier efficacement le comportement des objets. Par exemple, on peut rediriger des attributs et des méthodes vers de nouvelles variables locales et modifier les classes à la demande. Évidemment, il faut bien connaître les concepts de la programmation OO avant de s’y essayer. En outre, certaines des caractéristiques les plus professionnelles de Python, telles que la création de classes d’aide à l’intérieur des fonctions et la création d’autres instances de classe au moment de l’exécution, se prêtent mieux à des utilisations très avancées de ce langage populaire.

Héritage multiple

Les héritages multiples permettent aux classes dérivées d’hériter des propriétés de plus d’une classe de base. La classe dérivée est connue comme une classe dérivée multiple. On peut aussi appeler cela un cas d’héritages multiples. La classe dérivée est tenue d’hériter des propriétés de toutes les classes de base.

Un exemple de ceci serait :

class Car:
    def go(self):
        print('Going')


class Flyable:
    def fly(self):
        print('Flying')

class FlyingCar(Flyable, Car):
    pass

Ici, j’ai défini les classes Car et Flyable qui possèdent respectivement les méthodes go() et Fly(). Il existe ensuite une classe FlyingCar qui hérite des classes Car et Flyable ; elle réutilise les méthodes de ces classes. Cela signifie que vous pouvez appeler les méthodes go() et fly() ensemble sur une instance de la FlyingCar.

Comme ça :

if __name__ == '__main__':
    fc = FlyingCar()
    fc.go()
    fc.fly()

Le mot de la fin

Dans cet article, nous avons discuté des différents types de concepts, classes et objets de la POO en Python en détail avec des exemples. Nous avons également essayé de répondre à certaines questions de base comme Qu’est-ce que la POO en Python ? Quels sont les différents types de concepts de POE en Python ? Si vous avez des questions, n’hésitez pas à les poser, nous serons heureux de vous aider davantage.