Programmation orientée objet en Python
Alex Yarosh
Content Quality Analyst @ DataCamp
self comme premier argumentself.___
class MyClass:
# définition de fonction dans la classe
# premier argument est self
def my_method1(self, other_args...):
# faire des choses ici
def my_method2(self, my_attr):
# attribut créé par affectation
self.my_attr = my_attr
...
__init__() est appelée à chaque création d'objet.class Customer: def __init__(self, name): self.name = name # <--- Crée l'attribut .name et le définit au paramètre name print("La méthode __init__ a été appelée")cust = Customer("Lara de Silva") #<--- __init__ est appelée implicitement print(cust.name)
La méthode __init__ a été appelée
Lara de Silva
class Customer: def __init__(self, name, balance): # <-- paramètre balance ajoutéself.name = name self.balance = balance # <-- attribut balance ajouté print("La méthode __init__ a été appelée")cust = Customer("Lara de Silva", 1000) # <-- __init__ est appelée print(cust.name) print(cust.balance)
La méthode __init__ a été appelée
Lara de Silva
1000
class Customer: def __init__(self, name, balance=0): #<-- valeur par défaut pour balanceself.name = name self.balance = balance print("La méthode __init__ a été appelée")cust = Customer("Lara de Silva") # <-- ne pas spécifier balance explicitementprint(cust.name) print(cust.balance) # <-- attribut créé quand même
La méthode __init__ a été appelée
Lara de Silva
0
class MyClass:
def my_method1(self, attr1):
self.attr1 = attr1
...
def my_method2(self, attr2):
self.attr2 = attr2
...
obj = MyClass()
obj.my_method1(val1) # <-- attr1 créé
obj.my_method2(val2) # <-- attr2 créé
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Tous les attributs sont créés obj = MyClass(val1, val2)
__init__()__init__()CamelCase pour les classes, lower_snake_case pour les fonctions et attributs
__init__()CamelCase pour les classes, lower_snake_case pour les fonctions et attributs
self comme selfclass MyClass:
# Cela fonctionne mais n'est pas recommandé
def my_method(kitty, attr):
kitty.attr = attr
__init__()CamelCase pour les classes, lower_snake_case pour les fonctions et attributs
self est selfclass MyClass:
"""Cette classe ne fait rien"""
pass
Programmation orientée objet en Python