Méthodologie de la programmation
TP IV


TP Programmation orientée objet II.


Exercice 0

Définissons deux classes : Adresse et Personne.


Adresse contient les attributs :

Personne contient les attributs :

A

B

a = Adresse('foo', 'bar', 'loo')
# Acceder directement à un attribut d'une classe : 
print(a._rue) # 'foo'

# Ce qui est attendu dans l'exercice : 
print(a.rue()) # 'foo'

Exercice 1

A

B

C

Exercice 2

A

B

C

Bonus

A

Un indexeur est une méthode qui permet d’accéder à l’objet en utilisant les crochets :

# l ici est un objet Liste_personnes :
# un indexeur est donc une méthode permettant ce genre de comportement
print(l[0])

En python, il faut implémenter la méthode “magique” __getitem__().


A priori cette méthode prend en argument une clef et renvoie l’élément de sa liste de Personne correspondant à la clef.

B

Implémentez la méthode __len__() permettant d’utiliser la méthode len() sur votre objet Liste_personnes.

# l est toujours un objet de type Liste_personnes :
# méthode __len__() permet d'utiliser len() sur un objet.

print(len(l))

La classe Liste_personnes ne contenant qu’un seul attribut, il est facile d’immaginer ce que len(l) pourrait être…

Bonus

Il existe une autre méthode, appelée itérateur qui permet comme son l’indique d’itérer sur objet. Comme par exemple de la manière suivante :

for i in range(0, len(l)):
    print(i)

# Ou, si on a implémenté les méthodes __len__() et __getitem__() :

for i in l:
    print(i)

N’insistez pas trop sur ces questions si ça ne vous vient pas, on verra ça plus end détail en cours.