[Python] Consiglio su utilizzo di variabili globali

Simone simozack a yahoo.it
Ven 9 Maggio 2008 13:32:27 CEST


Mr.SpOOn ha scritto:

> A me interessa poter istanziare una classe a runtime, ad esempio
> cliccando su un bottone. Ogni click, una nuova istanza. Dico che non
> va bene usare
> 
> pannello = Pannello()
> 
> perché così legherei l'istanza sempre alla stessa variabile. O sbaglio?
> Forse dovrei semplicemente chiamare Pannello() e restituire l'istanza
> senza assegnarla ad alcuna variabile e aggiungerla nell'apposito
> wxFrame.

Continuo a non capire. *Sembra* che tu voglia generare dei pannelli 
diversi pertendo da un pannello, per così dire, di traccia e che mette o 
toglie elementi a seconda dei parametri che gli vengono passati. Se è 
così, dove sta la complicazione? Nel senso che crei la classe pannello, 
e nell'__init__ ci fai passare i parametri che ti servono. Poi a seconda 
di dove vuoi metterlo, lo associarai ad un attributo specifico.

Tipo, in pseudo-codice,:

class Pannello(wx.Panel):
   def __init__(self, parent, parametro, parametro2):
     if parametro:
       do_something()
     if parametro2:
       do_something_else()

class Frame1(wx.Frame):
   def __init__(self, parent):
     self.pannello = Pannello(self, parametro, parametro2)

class Frame2(wx.Frame):
   def __init__(self, parent):
     self.pannello = Pannello(self, 'foo', 'bar')

In questo modo il pannello del Frame1 è un'istanza "per conto proprio" 
rispetto al pannello del Frame2.

Simone
Chiacchiera con i tuoi amici in tempo reale! 
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 



Maggiori informazioni sulla lista Python