Introduction à la programmation orientée objet en Python
George Boorman
Curriculum Manager, DataCamp
self en premier argumentself.___class MyClass: # définition de fonction dans une classe # premier argument : self def my_method1(self, other_args...): # faire des choses icidef my_method2(self, my_attr): # attribut créé par affectation self.my_attr = my_attr ...
__init__() est appelé à chaque création d’objet__methodname__class Customer:
def __init__(self, name):
# Créer l’attribut .name et le définir avec le paramètre name
self.name = name
print("The __init__ method was called")
# __init__ est appelé implicitement
cust = Customer("Lara de Silva")
print(cust.name)
The __init__ method was called
Lara de Silva
class MyClass: def my_method1(self, attr1): self.attr1 = attr1 ... def my_method2(self, attr2): self.attr2 = attr2 ...obj = MyClass() # attr1 créé obj.my_method1(val1) # attr2 créé obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Tous les attributs sont créés obj = MyClass(val1, val2)
class Customer: # Ajouter l’argument balance def __init__(self, name, balance):self.name = name # Ajouter l’attribut balance self.balance = balance print("The __init__ method was called")
# __init__ est appelé
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# Définir une valeur par défaut pour balance
def __init__(self, name, balance=0):
self.name = name
# Assigner le nouvel attribut
self.balance = balance
print("The __init__ method was called")
# Ne pas préciser balance explicitement cust = Customer("Lara de Silva")print(cust.name) # L’attribut balance est quand même créé print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__()__init__()CamelCase pour les classes, lower_snake_case pour les fonctions et attributs
__init__()CamelCase pour la classe, lower_snake_case pour les fonctions et attributs
self comme selfclass MyClass:
# Cela fonctionne mais n’est pas recommandé
def my_method(george, attr):
george.attr = attr
__init__()CamelCase pour la classe, lower_snake_case pour les fonctions et attributs
self est selfclass MyClass:
"""Cette classe ne fait rien"""
pass
Introduction à la programmation orientée objet en Python