J'ai lu le cours sur ce site jusqu'à la troisième partie, sur les classes. Je commence le 1er chapitre et j'ai du mal à comprendre ce code :
class TableauNoir:
"""Classe définissant une surface sur laquelle on peut écrire,
que l'on peut lire et effacer, par jeu de méthodes. L'attribut modifié
est 'surface'"""
def __init__(self):
"""Par défaut, notre surface est vide"""
self.surface = ""
def ecrire(self, message_a_ecrire):
"""Méthode permettant d'écrire sur la surface du tableau.
Si la surface n'est pas vide, on saute une ligne avant de rajouter
le message à écrire"""
if self.surface != "":
self.surface += "\n"
self.surface += message_a_ecrire
Et lors du test :
>>> tab = TableauNoir()
>>> tab.surface
''
>>> tab.ecrire("Coooool ! Ce sont les vacances !")
>>> tab.surface
"Coooool ! Ce sont les vacances !"
>>> tab.ecrire("Joyeux Noël !")
>>> tab.surface
"Coooool ! Ce sont les vacances !\nJoyeux Noël !"
>>> print(tab.surface)
Coooool ! Ce sont les vacances !
Joyeux Noël !
>>>
Je ne comprends pas comment self.surface fait à prendre en considération ce que l'on écrit ?
De plus on a :
if self.surface != "":
self.surface += "\n"
self.surface += message_a_ecrire
self.surface est pourtant bien vide au départ ?!
En fait ce qui se passe c'est que self.surface étant vide, on saute le if et on exécute self.surface += message_a_ecrire ; est-ce bien ça ?
Merci d'avance à ceux qui essaieront de m'expliquer.
Amicalement
C'est effectivement cela...
En faisant tab.ecrire("message"), tu appelles la fonction defsurface(self,message_a_ecrire), or cette fonction dit self.surface+=message_a_ecrire, donc tu modifies self.surface en appelant la fonction ecrire ...
Je ne sais pas si j'ai été clair...
Effectivement, c'est un principe de l'orienté objet que tu ne comprends pas... pourtant j'ai appris la POO avec le tutoriel de Python, et j'ai trouvé qu'il explique très clairement... peut-être qu'en lisant la suite, tu comprendras mieux...
Petit problème de compréhension
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.