• [^] # Re: Pourquoi tous ces self ?

    Posté par . En réponse à la dépêche Sortie de Python 2.4. Évalué à 6.

    Et je trouve cela tres moche, d'ailleurs je me demande pourquoi ne pas tout simplement avoir 2 mots: def pour définir les methodes (sans le self) et fun pour définir les fonctions..

    Parce qu'en Python, une méthode c'est simplement une fonction qui a été ajoutée comme attribut d'une classe ou d'un objet.

    Par exemple si j'ai une classe Carre:

    class Carre(object):
    def __init__(self, cote):
    self.cote = cote

    Je peux définir une fonction aire_carre pour calculer l'aire d'un carré :

    def aire_carre(carre):
    return carre.cote ** 2

    print aire_carre(Carre(5)) # affiche 25

    Et il suffit d'attacher cette fonction à la classe Carre pour en faire une méthode :

    Carre.aire = aire_carre
    print Carre(6).aire() # affiche 36