A voir également:
- Exercice orienté objet python
- Vente objet occasion entre particulier - Guide
- Citizen code python avis - Accueil - Outils
- Identifier un objet à partir d'une photo - Guide
- Objet interdit en cabine ryanair - Guide
1 réponse
Bonjour,
Dans Personne.__repr__
- Il est inutile de convertir chaque valeur par leur propre type, ça ne sert à rien du tout.
- self.x n'existe pas.
- Plutôt que d'une concaténation de chaînes, sers-toi de format
Tu t'es bien mélangé les pinceaux entre Etudiant et Employe, vu que le 5ème argument de l'__init__de Etudiant dans ton code est celui que tu dois définir dans la classe Employe et qu'il y a une méthode calculerSalaire, alors le nom de cette classe doit être Employe et pas Etudiant.
Dans Etudiant.__repr__, self.nbre n'existe pas, c'est nbre (argument de la méthode).
Dans les méthodes ajouterEmploye, ajouterEtudiant de Gestion, tu dois simplement utiliser des input pour demander les valeurs nécessaires à l'instanciation des classes Etudiant et Employe.
Donc pour ajouter un employe, tu dois demander la saisie de 4 valeurs pour pouvoir définir un employé.
Personnellement je trouve la classe Gestion complètement stupide, je ne vois pas pourquoi on devrait gérer étudiants et employés dans cette même classe et y ajouter des méthodes spécifiques à chacune de ces types d'objets.
Pareil pour les identifiants, cela devrait être créé automatiquement par les classes Etudiant et Employé en utilisant une variable de classe, car on peut très bien avoir 2 employés portant même nom et prénom, la seule chose qui les distinguera est donc leur identifiant ce qui fait que Employe.__eq__ n'a pas vraiment de sens.
Dans Personne.__repr__
- Il est inutile de convertir chaque valeur par leur propre type, ça ne sert à rien du tout.
- self.x n'existe pas.
- Plutôt que d'une concaténation de chaînes, sers-toi de format
return 'nom: {}, prenom: {}, identifiant: {}'.format(self.nom, self.prenom, self.identifiant)
Tu t'es bien mélangé les pinceaux entre Etudiant et Employe, vu que le 5ème argument de l'__init__de Etudiant dans ton code est celui que tu dois définir dans la classe Employe et qu'il y a une méthode calculerSalaire, alors le nom de cette classe doit être Employe et pas Etudiant.
Dans Etudiant.__repr__, self.nbre n'existe pas, c'est nbre (argument de la méthode).
Dans les méthodes ajouterEmploye, ajouterEtudiant de Gestion, tu dois simplement utiliser des input pour demander les valeurs nécessaires à l'instanciation des classes Etudiant et Employe.
Donc pour ajouter un employe, tu dois demander la saisie de 4 valeurs pour pouvoir définir un employé.
Personnellement je trouve la classe Gestion complètement stupide, je ne vois pas pourquoi on devrait gérer étudiants et employés dans cette même classe et y ajouter des méthodes spécifiques à chacune de ces types d'objets.
Pareil pour les identifiants, cela devrait être créé automatiquement par les classes Etudiant et Employé en utilisant une variable de classe, car on peut très bien avoir 2 employés portant même nom et prénom, la seule chose qui les distinguera est donc leur identifiant ce qui fait que Employe.__eq__ n'a pas vraiment de sens.
27 nov. 2019 à 18:42
Merci bien trifou pour ta réponse, la première partie où j'ai mélangé les pinceaux je vois erreur grave donc j'ai rectifié mais le reste je comprends pas très bien, peux tu stp expliquer de façon très explicite comment je suis sensé procéder ?
28 nov. 2019 à 10:04
Qu'est-ce que tu ne comprends pas ? Je veux bien expliquer, mais quoi expliquer si tu ne précises pas ce qui te pose soucis -_-
28 nov. 2019 à 17:52
Il y'a des parties du code qu'il me reste à compléter je ne sais ce qu'il faut faire.
Voici le code en question:
28 nov. 2019 à 20:42
Je t'ai déjà dit comment faire pour créer étudiants et employés, utilise des input.
Attention à l'indentation, utilise un éditeur de texte dans lequel on peut paramétrer la touche tab pour insérer 4 espaces.
Pour les étudiants.
- J'ai viré la méthode __eq__ de Personne, qui ne sert à rien.
- Les identifiants sont gérés automatiquement par la classe Etudiant, il te faudra faire de même pour la classe Employe.
- super() réfère à la classe parente, comme tu vois on s'en sert dans l'__init__ de Etudiant et aussi dans __repr__
A toi de faire la même chose pour les employés.
29 nov. 2019 à 19:39
Merci bien trifou tu en a déjà assez faire. Le reste je le ferais