Programmation objet en Python
💻 Travail n° 1 Classe Cercle
🎯 Travail à faire :
-
À partir de l’exemple donné dans Une 1ère classe, créer une classe
Cercle
:-
qui possède 1 attribut d’instance nommé
rayon
-
2 méthodes
calcCirconference()
etcalcSurface()
qui retourne respectivement la circonférence et la surface d’un objet de typeCercle
-
-
Instancier 2 objets
c1
etc2
de typeCercle
avec 2 rayons différents et calculer puis afficher leur circonférence et leur surface.
c1 <Cercle(1)> -> Circonférence : 6.28 / Aire : 3.14
c2 <Cercle(10)> -> Circonférence : 62.83 / Aire : 314.16
💻 Travail n° 2 Classe IP
🎯 Travail à faire 🔥 🔥 :
-
Toujours à partir de l’exemple donné dans Une 1ère classe, créer une classe
IP
permettant de manipuler une adresse IP d’un hôte réseau.Celle-ci doit :
-
possèder 2 attributs d’instance :
-
ip
→ valeur de l’adresse IP -
mask
→ masque
-
-
un constructeur
__init__()
qui prend en paramètre une adresse IP et une longueur de masque (Ex. :__init(`192.168.4.5', 22)
-
une méthode
getNwkAddr()
qui retourne l’adresse réseau -
une méthode
getMask()
qui retourne, sous forme de chaîne de caractères, le masque réseau en notation décimale pointée -
une méthode
getBcastAddr()
qui retourne, sous forme de chaîne de caractères et en notation décimale pointée, l’adresse de broadcast du réseau auquel appartient l’IP -
une méthode
getMaxHosts()
qui retourne le nombre max. d’hôtes du réseau auquel appartient l’IP -
une méthode
getMinIp()
qui retourne la 1ère adresse disponible du réseau auquel appartient l’IP -
une méthode
getMaxIp()
qui retourne la dernière adresse disponible du réseau auquel appartient l’IP -
la méthode spéciale
__repr__()
qui retourne l’adresse IP sous forme de chaîne de caractères au format CIDR (→ “192.168.4.5/22”)
-
Vous pouvez vous servir du code source qui a été vu en co-enseignement math dans la partie qui traite des opérateurs bit-à-bit |
💻 Travail n° 3 Surcharge opérateur
🎯 Travail à faire :
Compléter le code de la classe Resistance
donné dans le script Python ci-dessous pour qu’elle redéfinisse le comportement de l’opérateur //
(→ division entière) pour que celui-ci permettent de calculer la valeur résultante de résistance montées en parallèle.
Rappel
La formule générale permettant de calculer la résistance équivalente (Req) de résistances associées en parallèles est : |
Vous consulterez operator — Opérateurs standards en tant que fonctions pour déterminer la méthode spéciale Python associée à l’opérateur
//
que vous devez redéfinir/surcharger.
Ne pas oublier de définir également la méthode getVal()
qui permet de retourner la valeur de l’attribut d’instance r
.
class Resistance :
def init(self, r) :
self.value = r
À COMPLETER
if name == "main":
r1 = Resistance(470)
r2 = Resistance(220)
r3 = Resistance(820)
r12 = r1 // r2
r123 = r1 // r2 // r3
print(f"r1 // r2 : {r12.getVal():.2f}")
print(f"r1 // r2 // r3 : {r123.getVal():.2f}")
r1 // r2 : 149.86
r1 // r2 // r3 : 126.70
🞄 🞄 🞄