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 :

Problème lors du changement du contenu d'un label


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème lors du changement du contenu d'un label
    Bonjour,

    Tout d'abord je tiens à préciser que mon niveau en Python est très faible, puisque je suis actuellement en Terminale et que j'apprend le Python dans le cadre de l'ISN (une nouvelle matière optionnelle pour les TS). En bref ne cherchez pas une erreur compliquée x)

    Je pense que tout est résumé sur cette capture d'écran. En bref j'ai l'impression que l'ordinateur reconnait ma demande de changement du contenu d'un label ("lab1.config(...)") comme attribut de "config" de l'objet "lab1"... Si je ne me trompe pas...

    Nom : Problème Python.JPG
Affichages : 156
Taille : 149,7 Ko

    Je tiens à préciser que même si je change l'ordre de définition des fonctions, ou si je défini le label ainsi que le changement de son contenu dans la même fonction, le même message d'erreur s'affiche.

    Merci d'avance pour votre aide et bonne soirée !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    C'est super d'essayer de définir des fonctions, mais il ne faut pas oublier que les variables "assignées" (et créées) dans la fonction sont, par défaut, locales.
    Dans la pratique, sorti de la fonction, elle n'existent plus!
    Relisez, le message d'erreur: çà parle de variable "globale". Comme lab13 n'a pas été créé par les instructions précédentes de la fonction, l'interpréteur va essayer de trouver une variable globale ayant ce nom là.... et il abandonne avec perte et fracas.

    Pour s'en sortir, vous avez le mot clé "global":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> def foo():
    ...    global toto
    ...    toto = 1
    ...    return toto
    ...
    >>>
    >>> foo()
    1
    >>> print (toto)
    1
    Comme vous débutez, vous pouvez en abuser...
    Avec le temps, vous apprendrez à vous en méfier.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Merci mais...
    Merci beaucoup pour cette réponse, mon prof m'avais en fait également proposé de faire ça ! Néanmoins, le même message d'erreur s'affiche... Ce qui m'intrigue le plus c'est qu'il est resté planté devant l'ordi pendant un quart d'heure en cherchant d'où pouvait alors provenir l'erreur, sans y parvenir. Il m'a promis de trouver l'erreur ce week-end, mais j'ai pensé que vous pourriez peut-être y parvenir mieux que lui

    J'ai refais une capture d'écran (je ne vous en ai pas fait une pour chaque combinaison de global et de return que j'ai essayé, mais je pense avoir presque tout essayé de ce coté là) :

    Nom : Problème Python BIS.JPG
Affichages : 175
Taille : 166,3 Ko

    Encore un grand merci par avance pour votre aide !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par toinz Voir le message
    Merci beaucoup pour cette réponse, mon prof m'avais en fait également proposé de faire ça ! Néanmoins, le même message d'erreur s'affiche... Ce qui m'intrigue le plus c'est qu'il est resté planté devant l'ordi pendant un quart d'heure en cherchant d'où pouvait alors provenir l'erreur, sans y parvenir. Il m'a promis de trouver l'erreur ce week-end, mais j'ai pensé que vous pourriez peut-être y parvenir mieux que lui
    Essayez d'être attentif: une erreur est levée au même endroit mais ce n'est plus la même erreur.
    A vous de la comprendre et de la corriger, non seulement c'est votre boulot mais un passage obligé pour apprendre quelque chose en faisant ce type d'exercice.
    Votre problème est à la ligne lab13 = Label(...).grid(...).
    Vous lancez la console et vous tapez quelques lignes de code pour essayez de comprendre la différence entre l'instanciation d'un Label, l'appel d'une méthode associée et in fine, ce que pourra contenir la variable.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup de ton aide mais je crois que tu me surestime (en bref je ne comprends rien à ce que tu dis, malgré tout les efforts que j'ai fais pour comprendre, que cela soit en question de vocabulaire ou d'imagination)

    Disons que pour simplifier au maximum, je ne comprend pas pourquoi le programme de mon prof marche parfaitement bien, alors que le petit que j'ai fait (voir image) qui est simplissime et qui reprend strictement la même forme, ne marche pas :

    Nom : Capture 4.JPG
Affichages : 180
Taille : 219,2 Ko

    Je pense qu'en ayant autant simplifié le problème je devrai être en mesure de comprendre.

    Encore mille fois merci !

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    De même, toutes les commandes de la forme xxx.xxx(xxx) provoquent l'affiche du même message d'erreur, par exemple can1.delete(ALL).

    Merci encore

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Il serait plus simple de regarder ce qu'il se passe à la console.
    Un code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> import tkinter as tk
    >>> l1 = tk.Label(text='l1')
    >>> l1.grid()
    >>> l1.configure(text='zzz')
    >>> l1.destroy()
    La construction qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> l1 = tk.Label(text='l1').grid()
    >>> l1.configure(text='zzz')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'NoneType' object has no attribute 'configure'
    apprendre <=> prendre le temps de trouver une explication sur le sens des '.' que vous tapez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ah oui d'accord... Tout est plus clair maintenant ! (Et tout marche !!! )

    Merci infiniment ! Bonne soirée et navré pour le dérangement !

Discussions similaires

  1. probléme lors de changement du lock type
    Par dj_techno dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/12/2008, 16h45
  2. Crystal Reports : problème lors du changement de Serveur
    Par Abac_Angelique dans le forum C#
    Réponses: 2
    Dernier message: 12/10/2007, 09h26
  3. Problème lors du changement d'un écran
    Par remyv87 dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 03/07/2007, 16h47
  4. [HTML] Problème lors du changement des chemins
    Par ramzi24 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 14/12/2006, 19h37
  5. Problème lors du changement de résolution d'écran
    Par yangoal25 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 10/11/2006, 15h33

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