J'ai eu du mal à comprendre moi-même. Même après avoir lu les réponses ici.
Pour bien comprendre le __init__
méthode que vous devez comprendre vous-même.
Le paramètre du moi
Les arguments acceptés par le __init__
méthode sont :
def __init__(self, arg1, arg2):
Mais nous ne lui passons en fait que deux arguments :
instance = OurClass('arg1', 'arg2')
D'où vient l'argument supplémentaire ?
Lorsque nous accédons aux attributs d'un objet, nous le faisons par nom (ou par référence). Ici, l'instance est une référence à notre nouvel objet. Nous accédons à la méthode printargs de l'objet instance en utilisant instance.printargs.
Afin d'accéder aux attributs des objets à partir de l'interface __init__
nous avons besoin d'une référence à l'objet.
Lorsqu'une méthode est appelée, une référence à l'objet principal est passée comme premier argument. Par convention, vous appelez toujours ce premier argument à vos méthodes self.
Cela signifie que dans le __init__
méthode que nous pouvons faire :
self.arg1 = arg1
self.arg2 = arg2
Ici, nous définissons les attributs de l'objet. Vous pouvez le vérifier en effectuant les opérations suivantes :
instance = OurClass('arg1', 'arg2')
print instance.arg1
arg1
Les valeurs de ce type sont appelées attributs d'objet. Ici, le __init__
définit les attributs arg1 et arg2 de l'instance.
source : http://www.voidspace.org.uk/python/articles/OOP.shtml#the-init-method