Bonjour , j'essaye de créer un "petit logiciel" pour répertorier des animaux. Il existe une classe Animal, qui me pond des objets correspondants aux animaux qui atterrissent à la SPA.Il s'agit d'un exercice pratique et utile.

Je ne connais donc pas à l'avance l’espèce,ni la race,ni le sexe,ni le poids etc.Mais qu'il s'agisse d'un chat de 2k ou d'un berger allemand de 15 kg , ils appartiennent tous deux à la classe Animal , pour ne pas compliquer les choses.

Il y aura également une classe Hebergeur, pour ceux qui viendront adopter , donc comme attribut ici:nom,adresse,n° tel,email etc. qu'il faudra saisir. Grace à un menu , on choisit de créer un objet animal ou un objet hebergeur , ou seulement de consulter ou éditer partiellement.

J'ai prévu de saisir les bonnes valeurs grâce à des inputs qui stockent temporairement l'info dans une liste , qui elle meme devrait se redeverser dans un objet afin de le stocker dans un fichier "data". Mais évidement j'ai rencontré des problèmes...Voici donc le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
 
# -*- coding: cp1252 -*-
from os import system
import pickle
import os
import pickle
import copy
liste_desc_animal = []
dico_desc_animal = {}
 
#----------------------------------- Classe Animal definition --------------------- 
class Animal:
def __init__(self, id_animal,espece,race,prenom_animal,date_naiss_animal,date_acc_spa,sexe,sterilise_statut,robe,poil,pesee_acc,rdv_veto,caractere,commentaire):
 
self.__id_animal = id_animal # int 
self.__espece = espece # int
 
self.__race = race # liste 
self.__prenom_animal = prenom_animal # string
 
self.__date_naiss_animal = date_naiss_animal # dates
self.__date_acc_spa = date_acc_spa # dates 
 
self.__sexe = sexe # boleen
self.__sterilise_statut = sterilise_statut # boleen
 
self.__robe = robe # liste
self.__poil = poil # liste
 
self.__pesee_acc = pesee_acc # float
 
self.__rdv_veto = rdv_veto # dates
 
 
self.__caractere = caractere # liste
self.__commentaire = commentaire # string
 
#-----------------------------------SET---------------------
def setId_animal(self, id_animal):
self.__id_animal = id_animal 
 
def setEspece(self, espece):
self.__espece = espece 
 
def setRace(self, race): 
self.__espece = espece 
 
def setPrenom_animal(self, prenom_animal): 
self.__prenom_animal = prenom_animal 
 
def setDate_naiss_animal(self, date_naiss_animal): 
self.__date_naiss_animal = date_naiss_animal 
 
def setDate_acc_spa(self, date_acc_spa): 
self.__date_acc_spa = date_acc_spa 
 
def setSexe(self, sexe): 
self.__sexe = sexe 
 
def setSterilise_statut(self, sterilise_statut): 
self.__sterilise_statut = sterilise_statut 
 
def setRobe(self, robe): 
self.__robe = robe 
 
def setPoil(self, poil): 
self.__poil = poil 
 
def setPesee(self, pesee_acc): 
self.__pesee_acc = pesee_acc 
 
def setRdv_veto(self, rdv_veto): 
self.__rdv_veto = rdv_veto
 
def setCaractere(self, caractere): 
self.__caractere = caractere
 
def setCommentaire(self, commentaire): 
self.__commentaire = commentaire 
#-----------------------------------GET--------------------- 
def getEspece(self):
return self.__espece
 
def getRace(self): 
return self.__race 
 
def getPrenom_animal(self): 
return self.__prenom_animal 
 
def getDate_naiss_animal(self): 
return self.__date_naiss_animal 
 
def getDate_acc_spa(self): 
return self.__date_acc_spa 
 
def getSexe(self): 
return self.__sexe 
 
def getSterilise_statut(self): 
return self.__sterilise_statut 
 
def getRobe(self): 
return self.__robe 
 
def getPoil(self): 
return self.__poil 
 
def getPesee(self): 
return self.__pesee_acc 
 
def getRdv_veto(self): 
return self.__rdv_veto 
 
def getCaractere(self): 
return self.__caractere 
 
def getCommentaire(self): 
return self.__commentaire 
#--------------------------------------------- Remplissage liste descriptive du nouvel animal arrivant a la SPA ------
def remplir_liste_desc_animal():
 
entree_id = input("quel est l' id ? ==> ")
entree_espece = input("quel est l' espece ? ==> ")
entree_race = input("quel est la race ? ==> ")
entree_prenom = input("quel est le prenom de l animal ? ==> ")
entree_ddn = input("quelle est sa date de naissance ? ==> ")
entree_dac = input("quelle est la date d accueuil a la SPA ? ==> ")
entree_sex = input("quel est le sexe ? ==> ")
entree_ster = input("Est il sterilise ? ==> ")
entree_robe = input("quelle est sa robe ? ==> ")
entree_poil = input("quel est son poil ? ==> ")
entree_poids = input("quel est son poids d entree ? ==> ")
entree_rdv = input("quel est son prochain rdv ? ==> ")
entree_carac = input("quel est son caractere (calin-dangereux-solitaire-joueur-lunatique...? ==> ")
entree_com = input("commentaire ? ==> ")
print("\n\n")
print(entree_id ) 
 
liste_desc_animal.append(entree_id)
liste_desc_animal.append(entree_espece)
liste_desc_animal.append(entree_race)
liste_desc_animal.append(entree_prenom)
liste_desc_animal.append(entree_ddn)
liste_desc_animal.append(entree_dac)
liste_desc_animal.append(entree_sex)
liste_desc_animal.append(entree_ster)
liste_desc_animal.append(entree_robe)
liste_desc_animal.append(entree_poil)
liste_desc_animal.append(entree_poids)
liste_desc_animal.append(entree_rdv)
liste_desc_animal.append(entree_carac)
liste_desc_animal.append(entree_com) 
 
print(" Recapitulatif: \n ",liste_desc_animal) 
 
#dico_desc_animal = {[id_animal] = [entree_id] }
 
 
with open('liste_animaux.txt', 'wb') as fichier:
mon_pickler = pickle.Pickler(fichier)
mon_pickler.dump(liste_desc_animal)
print("ceci a ete ajoute dans le fichier liste_animaux.txt ")
#------------------------------------------- Creer un objet a partir d une liste --------
def animalCreator(liste_desc_animal):
#liste_desc_animal[2] = Animal(liste_desc_animal[0],liste_desc_animal[1],liste_desc_animal[2],liste_desc_animal[3],liste_desc_animal[4],liste_desc_animal[5],liste_desc_animal[6],liste_desc_animal[7],liste_desc_animal[8],liste_desc_animal[9],liste_desc_animal[10],liste_desc_animal[11],liste_desc_animal[12],liste_desc_animal[13])
#entree_prenom = 
print("voici liste_desc_animal connu dans la fonction animalCreator : ",liste_desc_animal)
#------------------------------------------- affichage du menu -----------------------
class Menu:
 
def __init__(self):
self.choix_menu = 'choix_menu'
 
 
#self.__afficher_menu = afficher_menu
def afficher_menu(self): 
 
print(" 1. Creation de fiche pour un nouveau pensionnaire \n")
 
print(" 2. Modifier une fiche pour un animal deja connu de la SPA \n")
 
print(" 3. Affichage simple de la fiche pour un animal connu dans la base de donnees \n")
print(" 4. Affichage ameliore des pensionnaires avec tri en fonction de vos besoins precis \n")
 
print(" 5 Affichage du dernier pensionnaire enregistre dans la base de donnees \n")
 
print(" 6. Creation de fiche pour un nouveau hebergeur \n")
 
print(" 7. Modifier une fiche pour un hebergeur connu \n")
 
print(" 8. Affichage simple de la fiche pour un hebergeur connu dans la base de donnees \n")
 
print(" 9. Affichage ameliore des hebergeurs avec tri en fonction de vos besoins precis \n")
 
print(" 10. Admin : maintenance de la base de donnees \n")
print(" 11. contacts veterinaires \n")
print(" 12. contacts fournisseurs \n")
print(" 13. contacts mairie \n")
#------------------------------------------- entree clavier choix du menu -----------------------
 
def choisir_menu(self): 
choix_menu = input(" Choisissez une action : --> ")
print(" vous avez choisi : ",choix_menu)
choix_menu = int(choix_menu)
if choix_menu == 1:
os.system('cls')
remplir_liste_desc_animal()
for desc in liste_desc_animal:
nouvelanimal = Animal(desc)
 
#--------------------------------------------- BOUCLE pour MENU_ACCUEUIL -------------
a = True
while a:
#os.system('cls')
print("\n\n\n")
supermenu = Menu()
supermenu.afficher_menu() 
supermenu.choisir_menu() 
animalCreator(liste_desc_animal)
ferme = input("appuie pour fermer")
==> J'obtiens TypeError __init__() missing 13 required positional arguments 'espece','race',etc.
Que feriez vous à ma place ? Existe t il d'autre façon plus simple de mener à bien ce type de programme ?
Vous arrive t il d'assigner vos attributs d'objets en cours d'execution du programme ?