Aller au contenu

Les objets

Un objet est une instance d'une classe. Pour en créer un, il suffit d'appeler la classe en fournissant les arguments attendus par __init__.

product = Product("Clavier", 69.79)

print(product.name)        # Clavier
print(product.describe())  # Clavier : 69.79 €

Contrairement au langage C#, Python n'utilise pas le mot-clé new suivi du nom de la classe.

Chaque instance possède ses propres attributs :

keyboard = Product("Clavier", 69.79)
mouse = Product("Souris", 25.12)

mouse.price = 19.90

print(keyboard.price)  # 69.79
print(mouse.price)     # 19.9

Les attributs affectés à self sont propres à l'instance. Un attribut défini directement dans le corps de la classe est un attribut de classe. Il est accessible depuis la classe et ses instances, et présente des similitudes avec un champ statique en C#. Une affectation à cet attribut depuis une instance peut toutefois créer un attribut propre à cette instance, qui masque celui de la classe.

class Product:
    currency = "EUR"

    def __init__(self, name: str):
        self.name = name

Attention aux attributs de classe contenant des objets mutables tels que des listes : leur contenu peut être partagé de manière involontaire entre plusieurs instances.