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 :

Aide sur script


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut Aide sur script
    Bonjour

    Je voudrais construire une classe qui herite de Dialog afin d'ajouter une fonction d'exit propre a toutes ses fonctions en general. J'ai ecrit le code suivant qui est suppose recevoir le nom de la fonction en argument :

    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
    #! /usr/bin/env python
    import dialog
     
     
    class DialogManager(dialog.Dialog):
     
        def __init__(self, applicationtitle="No title", function=dialog.Dialog.menu):
     
            dialog.Dialog.__init__(self)
            self.applicationtitle = applicationtitle
     
            self.add_persistent_args(["--backtitle", self.applicationtitle])
            self.TIMER = 0
     
        def dialogBox(self, function="menu", data=[("0", "title"), ("1", "menu1")], height=35, width=54, menu_height=7, **kwargs):
     
            while 1:
                (code, tag) = function(data[0][1], height=height, width=width, menu_height=menu_height, choices=data[1:])
                if DialogManager.handle_exit_code(self, code):
                    break
            return code, tag
     
        def handle_exit_code(self, code):
     
            if code in (self.DIALOG_CANCEL, self.DIALOG_ESC):
                if code == self.DIALOG_CANCEL:
                    msg = "You chose cancel in the last dialog box. Do you want to exit ?"
                else:
                    msg = "You pressed ESC in the last dialog box. Do you want to exit ?"
     
                if self.yesno(msg) == self.DIALOG_OK:
                    sys.exit(0)
                return 0
            else:
                return 1
     
    def main():
        try:
            d = DialogManager("df")
            d.dialogBox()
            #print d.code, d.tag, d.width
     
        except dialog.error, exc_instance:
            sys.stderr.write("Error:\n\n%s\n" % exc_instance.complete_message())
            sys.exit(1)
     
        sys.exit(0)
     
    if __name__ == "__main__": main()
    Mais j'obtiens le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: 'str' object is not callable
    J'ai essaye plusieurs syntaxes mais je n'arrive pas a comprendre celle qui pourrait marcher ici..

    Merci

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Il manque le plus important : Le numéro de la ligne où se trouve le message d'erreur.

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    quelle ligne ?

  4. #4
    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,

    Cette erreur se produit quand on essaye d'exécuter une simple variable chaine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    x = "toto"
    print x()
     
    Traceback				
        <module>	D:\.......\test.py  	25		
    TypeError: 'str' object is not callable
    Il ne reste plus qu'à connaitre la ligne...

  5. #5
    Membre confirmé Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    Oops desole

    c'est ligne 18.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    function="menu" ???

  7. #7
    Membre confirmé Avatar de chaying
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Par défaut
    Je voulais en fait utiliser la meme technique que lors d'un switch.

    Python permet d'utiliser des strings comme nom de fonction, qui sont consideres comme fonction quand on les ecrit nom() si je ne me trompe ?

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

Discussions similaires

  1. demande d'aide sur scripts
    Par threepwood dans le forum Linux
    Réponses: 5
    Dernier message: 06/08/2008, 13h34
  2. votre aide sur script fusionne cvs fichiers
    Par chapeau_melon dans le forum VBScript
    Réponses: 0
    Dernier message: 27/06/2008, 16h07
  3. [Upload] aide sur script upload
    Par Jopa5 dans le forum Langage
    Réponses: 4
    Dernier message: 25/11/2007, 15h30
  4. [Oracle 9.2] Aide sur script SQL
    Par fmoriet dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/02/2006, 08h25
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59

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