Contexte :
Dans une classe Python, il y a deux façons principales de travailler avec des données :
- Les paramètres d’une méthode : des variables temporaires, transmises uniquement lors de l’appel de la méthode.
- Les attributs d’instance : des données spécifiques à chaque instance d’une classe, qui persistent tout au long de la durée de vie de l’objet.
Il est crucial de comprendre la différence, car ces deux concepts ont des portées, des usages et des durées de vie différents.
1. Les paramètres d’une méthode :
-
Qu’est-ce que c’est ?
Ce sont des variables temporaires, définies dans la signature d’une méthode et utilisées uniquement pendant l’exécution de cette méthode.
Une fois la méthode terminée, ces variables sont supprimées. -
Exemple :
class Exemple:
def addition(self, a, b):
resultat = a + b # 'a' et 'b' sont des paramètres locaux.
return resultat
- Explication :
a
etb
sont des paramètres.- Ces paramètres existent uniquement pendant que la méthode
addition
est en cours d’exécution. - Ils ne sont pas accessibles en dehors de la méthode.
2. Les attributs d’instance :
-
Qu’est-ce que c’est ?
Ce sont des variables associées à une instance spécifique d’une classe.
Ces données sont créées à l’aide deself
et restent disponibles aussi longtemps que l’objet existe. -
Exemple :
class Exemple:
def __init__(self, valeur):
self.valeur = valeur # 'self.valeur' est un attribut d'instance.
def afficher_valeur(self):
return self.valeur # Accès à l'attribut d'instance.
- Explication :
self.valeur
est un attribut d’instance, associé à l’objet créé.- Cet attribut peut être utilisé ou modifié dans d’autres méthodes ou après l’exécution.
Différences entre paramètres et attributs d’instance :
Critère | Paramètres d’une méthode | Attributs d’instance |
---|---|---|
Portée | Existent uniquement dans la méthode où ils sont définis. | Existent tant que l’objet existe. |
Persistance | Temporaire (durée de la méthode). | Permanente (durée de vie de l’objet). |
Lien avec l’objet | Pas directement liés à une instance. | Toujours liés à une instance via self . |
Accès | Non accessibles en dehors de la méthode. | Accessibles dans toute la classe via self . |
Modification | Changent uniquement dans la méthode où ils sont utilisés. | Peuvent être modifiés dans n’importe quelle méthode. |
Pourquoi est-il important de faire la distinction ?
-
Pour éviter la confusion entre données temporaires et permanentes :
- Si un développeur utilise un paramètre comme s’il était un attribut d’instance, les données risquent d’être perdues une fois la méthode terminée.
-
Pour permettre la réutilisation des données :
- Les paramètres disparaissent après la méthode, mais les attributs d’instance restent disponibles pour d’autres méthodes.
-
Pour assurer la cohérence des données :
- Les attributs d’instance permettent de conserver un état cohérent de l’objet, tandis que les paramètres ne le font pas.
Exemple pratique illustrant l’importance :
Mauvaise utilisation (confusion) :
class CompteBancaire:
def deposer(self, montant):
solde = 0 # Mauvaise approche : solde est un paramètre local.
solde += montant
return solde
compte = CompteBancaire()
print(compte.deposer(100)) # Output: 100
print(compte.deposer(200)) # Output: 200 (le solde est perdu !)
- Ici, le solde est perdu après chaque appel à la méthode, car il est défini comme une variable locale (paramètre).
Bonne utilisation (attribut d’instance) :
class CompteBancaire:
def __init__(self):
self.solde = 0 # Attribut d'instance pour conserver le solde.
def deposer(self, montant):
self.solde += montant # Modification de l'attribut d'instance.
return self.solde
compte = CompteBancaire()
print(compte.deposer(100)) # Output: 100
print(compte.deposer(200)) # Output: 300 (le solde est conservé)
- Ici, l’attribut d’instance
self.solde
conserve les données entre les appels, ce qui est cohérent pour un compte bancaire.
Conclusion :
Il est crucial de différencier paramètres (temporairement utilisés dans une méthode) et attributs d’instance (données spécifiques à un objet qui persistent). Cela garantit une gestion correcte des données, une cohérence dans le comportement des objets, et évite les erreurs liées à la perte de données importantes.

📘 “Enseigner la Programmation Python – Pratique” : la clé pour une pédagogie innovante en informatique. Découvrez l’Approche UMC, une méthode éprouvée adaptée à tous les environnements éducatifs. Appliquez l’approche UMC avec 20 exemples concrets (SNT & NSI). Parfait pour enseignants voulant dynamiser leur cours.

📘 “Enseigner la Programmation Python“: la clé pour une pédagogie innovante en informatique. Découvrez l’Approche UMC, une méthode éprouvée adaptée à tous les environnements éducatifs. Stimulez la créativité et préparez vos élèves à l’avenir de la programmation.
Pour un aperçu, 👉 cliquez ici pour feuilleter le livre sur Amazon 📚.