j'ai créé une classe ( .. ma première ) comme type "agenda".
Je pense qu'au niveau de la structure je suis pas mal (enfin je pense..)
J'instancie avec une variable un objet de la classe et utilise une méthode de cette classe pour l'enregistrer dans un fichier une ligne par objet instancier
Mais mon code me chagrine ... lol ...
je pense qu'au niveau de l'écriture dans le fichier dans la méthode je me complique la vie mais je vois pas ou ...
code ci-dessous :
class agenda :
def __init__(self,Nom,Email,Tel,No,Rue,Ville) :
self.Nom_prenom = Nom
self.Email = Email
self.Telephone = Tel
self.No = No
self.Rue = Rue
self.Ville = Ville
def ecriture(self) :
with open("fichier.txt","a") as fichier :
fichier.write(self.Nom_prenom+",")
fichier.write(self.Email+",")
fichier.write(self.Telephone+",")
fichier.write(self.No+",")
fichier.write(self.Rue+",")
fichier.write(self.Ville+"\n")
agenda = agenda(\
Nom = input("Nom : "),\
Email = input("Email : "),\
Tel = input("Tel : "),\
No = input("N° : "),\
Rue = input("Rue : "),\
Ville = input("Ville : "))
agenda.ecriture()
Ton code est très bien. Il est propre, lisible et il fait ce qu'il faut.
Tu peux éventuellement utiliser une f-string pour l'améliorer un peu.
fichier.write(f'{self.nom},{self.email},...')
Sinon la convention en général est de mettre les noms de classe en majuscule et les noms de variables en minuscules (avec des tirets entre les mots ou en camelCase).
En principe, on s'attendrait à ce que ta méthode ecriture ait un paramètre (éventuellement nommé) pour le nom de fichier. Et puisque tu écris le contenu de l'agenda, on pourrait presque s'attendre que tu surcharges la méthode spéciale __str__ (même si c'est discutable) dont le contenu peut être envoyé dans un fichier en utilisant l'argument nommé file de print.
Ton échappement de la fin de ligne n'est pas utile.
Je suis le seul à trouver que cette classe n'a pas le bon nom ? Un agenda n'est pas un objet comportant un nom, email, tel, etc. Cet objet s'appelle une Personne, ou encore un Contact. Un Agenda est une collection de Contacts.
Donc je verrais plutôt deux classes. La première contient les informations d'un Contact. La deuxième a des méthodes tels que ajouter(contact) et sauvegarder(nom_fichier). La première méthode permet d'ajouter un Contact à notre Agenda. Donc en interne, l'agenda aura un conteneur (une liste peut-être) dans laquelle il pourra stocker les Contacts qu'on lui fournit. Pour se sauvegarder, l'Agenda parcourt chaque Contact qu'il contient et l'inscrit dans un fichier. Ca lui permettrait ensuite de recharger les contacts depuis le disque.
Après je débute, je n'ai pas encore toutes les notions et toutes les bonnes réflexions.
j'aurais les instincts du code optimisé en codant ...
Merci pour les observations que je prends de façon constructives.
Mike
Les classes python
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Découverte Python Doc Tkinter Les chaînes de caractères
Blond, bouclé, toujours le sourire aux lèvres...