héritage de classe - Python - Programmation
Marsh Posté le 02-05-2005 à 00:18:43
__init__ n'est pas un constructeur, c'est une méthode d'initialisation mais quand __init__ est appelé l'objet est déjà créé. En python, le contructeur n'est pas accessible.
Si une classe enfant veut étendre l'une des fonctions de la classe parent, la méthode de la classe enfant doit explicitement appeler celle de la classe parent
Accessoirement, tu devrais lire Dive Into Python, c'est l'une des meilleures docs de Python que je connaisse.
Marsh Posté le 02-05-2005 à 00:23:30
Merci Masklinn pour cette réponse rapide et précise. Ca m'apprendra à lire entre les lignes et à ignorer la doc' ...
Marsh Posté le 02-05-2005 à 00:32:29
Pas grave, je crois pas que ça soit écrit dans le tutorial Python de tte façon.
Lit Dive, je te le conseille
Marsh Posté le 02-05-2005 à 00:53:07
Ok, voilà ce que cela donnerait (mais ça me fait quand même bizarre d'écrire les choses ainsi] :
class C0:
def __init__(self):
print "classe C0"
class C1(C0):
def __init__(self):
C0.__init__(self)
print "classe C1"
obj = C1()
et l'on verrait bien apparaître les messages : "classe C0" puis "classe C1"
Marsh Posté le 02-05-2005 à 00:53:52
Ouaip, c'est ça.
Marsh Posté le 02-05-2005 à 00:09:46
Bonsoir à tous, merci de m'aider.
J'apprends Python après plusieurs années passées sur le C++ et j'ai du mal à m'y retrouver question POO... Voici ma question :
Je crée une classe 'C0' puis une classe dérivée 'C1'; je pensais qu'à chaque appel du constructeur de C1 le constructeur de C0 était automatiquement appelé. Ce qui n'est pas le cas. C'est normal/pourquoi ? (désolé si j'ai rien capté !)