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 :
Après je fais :
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))
__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 :
J'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class _vb(): ...... def action1(): __print.debug(PRGNAME,"Pausing") ......
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.
Partager