Salut,
J'apprend à utiliser python avec le livre "Apprendre python" de Gerard Swinner, je suis au passage des classes, tout est a peu près clair sauf la méthode __init__ des classes dérivées faisant référence à la classe parente
Un exemple de ce dont je parle :
class CompteBancaire(object):
....def __init__(self, nom = "Dupond" , somme = 1000):
........self.nom= nom
........self.somme = somme
Ici, si je crée un objet test = CompteBancaire() sans donner d'argument dans les parenthèses, il aura automatiquement le nom et la somme définie comme Dupond et 1000
Mais si je crée une classe dérivée par exemple :
class CompteEpargne(CompteBancaire):
.... def __init__(self, nom, solde, taux):
........CompteBancaire.__init__(self, nom, solde)
........self.taux = 1.003
Et que je crée un object test1 = CompteEpargne() , j'ai un message d'erreur " TypeError: __init__() missing 2 required positional arguments: 'nom' and 'solde'" là où je voudrais que Test1 ait comme parametre nom = Dupond, somme = 1000 et taux = 1.003
Le programme ne fonctionnant qu'en donnant deux arguments a "test1" par exemple "Levalier" et "12"
Y a t il un moyen d'organiser son programme pour pouvoir appeler une instance d'une classe dérivée sans argument (comme ici dans l'exemple) tout en ayant les paramètres de la classe parente par défaut ?
De manière plus générale, je ne comprend pas comment fonctionne l'usage de ClasseParente.__init__(self, parametre1, parametreX) , comme cet autre exemple du livre :
Je comprend pas bien comment Rectangle.__init__(self,coin,cote,cote) permet a la classe rectangle de récupérer des objets qui lui sont inconnus
Si quelqu'un pourrait m'expliquer ou aurait un lien vers une explication a me fournir 