IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

probleme d'execution de mon code à cause d'un renvoie de variable.


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut probleme d'execution de mon code à cause d'un renvoie de variable.
    Voila le soucis. J'essai de retourner une valeur d'une classe pour qu'elle soit utilisée par une autre mias cela ne marche pas.
    Quand je tape python pymail.py (je suis sous debian), le terminal me redonne la main ....

    voila 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
    class Connexion:
    	def __init__(self):
    		self.fenetre = Tk()
    		self.fenetre.title("Connexion")
    		self.fenetre.geometry("200x200+50+50")
     
     
    		Label(self.fenetre, text="Login : ").pack()
    		login = Entry(self.fenetre, bg="white").pack()
    		return login
     		Label(self.fenetre, text="Mot de passe : ").pack()
    		mdp = Entry(self.fenetre, bg="white").pack()
    		return mdp
     
     
    		Button(self.fenetre, text="connexion", command=Manage).pack()
    		Button(self.fenetre, text="Quitter", command=self.fenetre.quit).pack()
     
    		self.fenetre.mainloop()
     
    class Manage(Connexion):
    	def __init__(self):
    		str_login = login.get() + "@gmail.com"
    		str_mdp = mdp.get()
     
    		connect = libgmail.GmailAccount(str_login, str_mdp)
    		connect.login()
    		dossier = connect.getMessagesByFolder("inbox")
    		for thread in dossier:
    			for msg in thread:
    				liste.insert(END,msg.author +"       "+ msg.subject)
     
     
    		self.manage = Tk()
    		self.manage.geometry("600x400+100+100")
    		Label(self.manage, text="Liste des mails:").pack()
    		liste = Listbox(self.manage,  width=80, height=20).pack()
    		Button(self.manage, text="Retour", command=self.manage.destroy).pack()
    		Button(self.manage, text="Ouvrir", command=Mail).pack()
     
     
    		self.manage.mainloop()	
     
    class Mail:
    	def __init__(self):
    		self.content = Tk()
    		self.content.title("Contenu du mail")
    		self.content.mainloop()
     
    if __name__ == "__main__":
    	import libgmail
    	from Tkinter import *
    	app = Connexion()
    en gros je veux que les variables login et mdp soit utilisables par la classe Manage.

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je n'ai pas essayé avec ton code, mais à mon avis, si dans la classe Connexion tu créais une variable self.login au lieu de login, elle serais accessible en dehors de cette classe par app.login. Idem pour app.mdp. Bien sûr, pour avoir cet accès à l'intérieur de la classe Manage, il faudrait définir app comme variable globale ("global app" dans la méthode --init--).

    Un moyen plus "propre" pourrait être de créer au sein de la classe Connexion une méthode "loginconnexion(self)" qui renverrait un tuple (self.login,self.mdp), et appelable de n'importe où par app.loginconnexion(). Même remarque concernant "global app".

    Tyrtamos

  3. #3
    Membre éclairé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 285
    Par défaut
    en fait vu que ca fait deja un moment que je buche dessus et que j'arrive toujours pas a reflechir en terme d'objet (merci le C) et que les self (meme avec les doc) n'arrivent pas a rentrer dans ma ptite tete, je vais boucler ca ce week end en procédural comme je sais si bien le faire. (oui au fait je dois rendre ca la semaine prochaine)
    Je passerai ca en objet qd j'aurai plus d'experience

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de syntaxe dans mon code
    Par MacZerbe dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2009, 20h56
  2. Mon code ne veut pas passer une variable
    Par pasbonte dans le forum Langage
    Réponses: 2
    Dernier message: 01/01/2009, 14h13
  3. probleme d'execution de mon site
    Par chamamo dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/05/2007, 09h19
  4. lenteur excessive de l'execution de mon code!
    Par nath-0-0 dans le forum WinDev
    Réponses: 13
    Dernier message: 29/12/2006, 17h50
  5. [Exécutable]puis je creer un executable a partir de mon code ?
    Par youpileouf dans le forum Général Java
    Réponses: 3
    Dernier message: 17/06/2005, 09h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo