Python POO
Python POO
Python POO
Pr. Y.ABOUQORA
1
Récapitulatif
Listes
Dictionnaires
Sets
Si Else
Boucles
Fonctions
Classes
Exercices
Agenda
Classes
Champs
Methodes objet
Constructeurs
Surcharges
Exceptions
Heritage
Exercices
POO, Définition d'une classe
Nom = valeur
– Exemple: point.py
1
class Point: 2
x = 0 class Point:
3 x = 0
y = 0 y = 0
# principale
p1 = Point()
p1.x = 2
p1.y = -5
import class
– les programmes clients doivent importer les classes qu'ils
utilisent
point_main.py
1 from Point import *
2
3 # principale
4 p1 = Point()
5 p1.x = 7
6 p1.y = -3
se ...
pt
8 # Les objets Python sont dynamiques (peuvent ajouter
9 des champs à tout moment !)
di p1.name = "Tyler Durden"
x
Méthodes d'objet
class Point:
def translate(self, dx, dy):
self.x += dx
self.y += dy
...
Paramètre "Implicite" (self)
point.py
1 from math import *
2
3 class Point:
4 x = 0
5 y = 0
6
se def set_location(self, x, y):
pt self.x = x
8 self.y = y
9
di def distance_from_origin(self):
x return sqrt(self.x * self.x + self.y * self.y)
11
12 def distance(self, other):
13 dx = self.x - other.x
14 dy = self.y - other.y
15 return sqrt(dx * dx + dy * dy)
16
17
Méthodes de classe
1) objet.méthode(paramètres)
ou
2) Class.méthode(objet, paramètres)
• Exemple:
p = Point(3, -4)
p.translate(1, 5)
Point.translate(p, 1, 5)
Constructeurs
– Exemple:
class Point :
def __init__(self, x, y):
self.x = x
self.y = y
...
point.py
1 class Point:
2 def __init__(self, x,
3 y):
4 self.x = x
5 self.y = y
...
def __str__(self):
return chaîne de caractères
def __str__(self):
return "(" + str(self.x) + ", " + str(self.y) + ")"
Classe de points complète
point.py
1
2 from math import *
3
4 class Point:
5 def __init__(self, x, y):
6 self.x = x
se self.y = y
pt
8 def distance_from_origin(self):
9 return sqrt(self.x * self.x + self.y * self.y)
di
x def distance(self, other):
11 dx = self.x - other.x
12 dy = self.y - other.y
13 return sqrt(dx * dx + dy * dy)
14
15 def translate(self, dx, dy):
16 self.x += dx
17 self.y += dy
18
19 def __str__(self):
20 return "(" + str(self.x) + ", " + str(self.y) + ")"
21
Surcharge de l'opérateur
raise ExceptionType("message")
– utile lorsque le client utilise votre objet de manière
inappropriée
les types: ArithmeticError, AssertionError, IndexError,
NameError, SyntaxError, TypeError, ValueError
– Exemple:
class BankAccount:
...
def deposit(self, amount):
if amount < 0:
raise ValueError("negative amount")
...
Héritage
class Nom(superclasse):
déclarations
– Exemple:
classe Point3D(Point): # Point3D étend Point
z = 0
...
• constructeurs : classe.__init__(paramètres)
print(type(mon_fichier))
• Pour écrire dans le fichier (le contenu précèdent sera écrasé), on utilise la méthode write
mon_fichier.write(’bonjour’)
#mode lecture
with open(’files/fichier.txt’, ’r’) as mon_fichier:
print(mon_fichier.read())
# affiche bonjour
Python : Fichier Json
import json
entry = { "ville": "New York"}
#Le contenu precedent est ecrase.
with open(’files/fichier.json’, ’w’) as f:
json.dump(entry, f)
import json
entry = { "ville": "New York"}
with open(’files/fichier.json’, ’a’) as f:
json.dump(entry, f)