Bonjour,
Débutant en python j'ai des questions sur les classes.
J'ai défini une classe qui me permet d'afficher les messages de facon standard :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class __print():
        def __init__(self,prg,message,extra="standard"):
                self.p=prg
                self.m=message
                self.e=extra
        def info(p,m):
                print("%-10s : %-10s : %-30s" % ("INFO",p,m))
        def debug(p,m):
                if DEBUG != 0 :
                        print("%-10s : %-10s : %-30s" % ("DEBUG",p,m))
Après je fais :
__print.info(arg1,arg2) ..
ou pour le debug
__print.debug( ...)

Ca fonctionne bien dans le main et dans les def mais si je defini une autre classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
class _vb():
          ......
         def action1():
                __print.debug(PRGNAME,"Pausing")
          ......
J'ai cette erreur :
File "./vb.py", line 165, in guest_pause
__print.debug(PRGNAME,"Pausing")
NameError: global name '_vb__print' is not defined

En fait il semble qu'il ne voit pas ma classe __print.
De plus pourquoi indique t il _vb__print

De manière générale je me demande si ma classe __print est bien vue ou il ne faudrait pas plutôt une def.
Je trouve ca pourtant élégant de pouvoir utiliser __print.level pour indiquer le niveau d'affichage des messages.