• Aucun résultat trouvé

Python Attributs et m´ethodes de classe M´ethodes statiques

N/A
N/A
Protected

Academic year: 2022

Partager "Python Attributs et m´ethodes de classe M´ethodes statiques"

Copied!
7
0
0

Texte intégral

(1)

Python

Attributs et m´ ethodes de classe M´ ethodes statiques

Nicolas Delestre

(2)

Attributs de classe

D´eclaration, utilisation

On d´eclare un attribut de classe en dehors de toute m´ethode, en ne le pr´efixant pas par self :

il est souvent initialis´e juste apr`es la d´eclaration de la classe il est utilis´e dans les m´ethodes de classe ou les m´ethodes d’objet

point.py

5 class Point2D:

6 _les_points = []

16 def __init__(self, x: float, y: float, identifiant:str=None):

17 self._x = x 18 self._y = y

19 self._id = identifiant 20 self._les_points.append(self)

(3)

M´ ethodes de classe 1 / 2

D´eclaration

On d´eclare une m´ethode de classe :

en pr´efixant la d´eclaration du d´ecorateur @classmethod en utilisant uniquement des attributs de classe

en rempla¸cant leself parcls(bonne pratique)

point.py

5 class Point2D:

6 _les_points = []

7

8 @classmethod 9 def les_points(cls):

10 return cls._les_points

(4)

M´ ethodes de classe 2 / 2

Utilisation

On utilise une m´ethode de classe en pr´efixant l’appel de la m´ethode par le nom de classe ou par un objet de la classe (notation point´ee)

1>>>frompointimportPoint2D 2>>> Point2D.les_points() 3[]

4>>> pt1=Point2D(1,1) 5>>> Point2D(2,2) 6Point2D(2, 2)

7>>> Point2D.les_points() 8[Point2D(1, 1), Point2D(2, 2)]

9>>> pt1.les_points() 10[Point2D(1, 1), Point2D(2, 2)]

(5)

M´ ethodes statiques 1 / 2

D´eclaration

On d´eclare une m´ethode statique en pr´efixant la d´eclaration du d´ecorateur

@staticmethod

Une m´ethode statique n’a pas acc`es `a l’´etat de la classe, il s’agit d’une fonction utilitaire rattach´ee `a la classe (attention aux faux amis avec d’autres langages tels que le Java)

point.py

12 @staticmethod

13 def translation(pt, vecteur, id=None):

14 return Point2D(pt.x + vecteur.x, pt.y + vecteur.y,id)

(6)

M´ ethodes statiques 2 / 2

Utilisation

On utilise une m´ethode statique en pr´efixant l’appel de la m´ethode par le nom de classe ou un objet de la classe (notation point´ee)

1>>>frompointimportPoint2D 2>>>fromvecteurimportVecteur2D

3>>> Point2D.translation(Point2D(1,1), Vecteur2D(1,0,’v’)) 4Point2D(2, 1)

(7)

Conclusion

Attributs et m´ethodes de classes M´ethodes statiques

Utilisable depuis la classe ou depuis une instance de la classe

Références

Documents relatifs

Le mot "chien" dans ces phrases ne change pas de classe grammaticale (toujours nom), mais ilchange de fonction :. Le chien aboie. possessifs, démonstratifs, interrogatifs,

« Il était normal que, dans cette atmosphère nouvelle, dans ce climat non scolaire, nous accédions spontanément à des formes de rapports qui n’étaient plus celles,

- Quelques-uns, plus expérimentés, tels Hubert Heintz ou Renée Coquart, nous diraient quel a été leur cheminement pour arriver à faire «tourner» leur classe

En 1963, Freinet les définissaient ainsi: (( Il s'agit en somme de la catégorie d'enfants qu'on confie actuellement à récole Freinet, scolairement bloqués,

Cette propriété est conservée par les huit isométries du carré et par les six transformations involutives R, S, T, R’, S’, T’ définies ainsi :.. S échange les lignes 1 et 4

Séance 5 : situations de division (chercher une partie avec des parties égales) : recherche de la valeur d’une part. La démarche suivie est identique à celle décrite lors de

'2- Présente la situation des droits de l'homme au Cameroun et deux institutions qui veillent à leur respect. 3- Donne deux solutions pour limiter les violations des

En classe, lorsque tu récites une poésie, tu dois faire attention à plusieurs choses pour que tes auditeurs soient attentifs et que des images leur viennent dans la tête..