Code optimisé python orienté objets
Bonjour,
Je sais pas si mon code est correct, j’ai eu des difficultés voici mon code
class Bibliotheque: def __init__(self, nom, livres_nombre=0): if len(nom) == 0: raise ValueError("Le nom ne peut pas être une chaîne vide.") self.__nom = nom self.__livres_nombre = livres_nombre self.__livres_empruntes = 0 @property def nom(self): return self.__nom @nom.setter def nom(self, value): if len(value) == 0: raise ValueError("Le nom ne peut pas être une chaîne vide.") self.__nom = value @property def livres_nombre(self): return self.__livres_nombre @livres_nombre.setter def livres_nombre(self, value): if not isinstance(value, int) or value < 0: raise ValueError("Le nombre de livres doit être un entier positif.") if value < self.__livres_empruntes: raise ValueError("Le nombre de livres ne peut pas être inférieur au nombre de livres empruntés.") self.__livres_nombre = value @property def livres_empruntes(self): return self.__livres_empruntes @livres_empruntes.setter def livres_empruntes(self, value): if not isinstance(value, int) or value < 0: raise ValueError("Le nombre de livres empruntés doit être un entier positif.") if value > self.__livres_nombre: raise ValueError("Le nombre de livres empruntés ne peut pas être supérieur au nombre de livres disponibles.") self.__livres_empruntes = value @property def livres_disponibles(self): return self.__livres_nombre - self.__livres_empruntes def emprunter_livre(self, le_quantite): if not isinstance(le_quantite, int) or le_quantite < 0: raise ValueError("La quantité doit être un entier positif.") if le_quantite > self.livres_disponibles: raise ValueError("La quantité demandée dépasse le nombre de livres disponibles.") self.__livres_empruntes += le_quantite def retourner_livre(self, le_quantite): if not isinstance(le_quantite, int) or le_quantite < 0: raise ValueError("La quantité doit être un entier positif.") if le_quantite > self.__livres_empruntes: raise ValueError("La quantité retournée dépasse le nombre de livres empruntés.") self.__livres_empruntes -= le_quantite def __str__(self): return f"Nom: {self.__nom}, Livres nombre: {self.__livres_nombre}, Livres disponibles: {self.livres_disponibles}, Livres empruntés: {self.__livres_empruntes}"
Modération : merci d'utiliser les balises de code
- Code optimisé python orienté objets
- Code ascii - Guide
- Site pour vendre des objets d'occasion - Guide
- Citizen code python avis - Accueil - Outils
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
2 réponses
Bonjour,
J'ai remis en forme le code, merci de tenir compte du lien donné par Phil pour tes futurs message.
Le code est correct, mais pour l'instant, il ne fait rien à part déclarer la classe Bibliothèque. Du coup, si tu lances ce fichier, il semble ne rien se passer. Il faut donc créer une (ou plusieurs) instance(s) de cette classe et que tu l'utilises.
Voici un exemple :
class Bibliotheque: def __init__(self, nom, livres_nombre=0): if len(nom) == 0: raise ValueError("Le nom ne peut pas être une chaîne vide.") self.__nom = nom self.__livres_nombre = livres_nombre self.__livres_empruntes = 0 # etc... def main() bibliotheque = Bibliotheque("Bibliothèque d'Alexandrie", 100000) print(bibliotheque) bibliotheque.emprunter_livre(10) print(bibliotheque) main()
Résultat :
Nom: Bibliothèque d'Alexandrie, Livres nombre: 100000, Livres disponibles: 100000, Livres empruntés: 0
Nom: Bibliothèque d'Alexandrie, Livres nombre: 100000, Livres disponibles: 99990, Livres empruntés: 10
Bonne chance
Bonjour,
Qu'as tu eu comme difficultés ?
Des erreurs ?
on y verrait plus clair si tu affichais ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Visuellement, ça doit ressembler à ça:
for k in range(10): print(k)