>>>>> On Mon, 21 May 2001 12:18:45 +0200, Matteo Ianeselli <ianezz@xxxxxxxxxx> >>>>> said: MI> Sto smaneggiando con Python (2.1, tra l'altro) + Tkinter, MI> giusto per rendermi conto dell'ambiente, ma mi sono imbattuto MI> in alcune cosette che non mi sono del tutto chiare: Ti posso rispondere solo per la prima parte, in quanto non ho mai usato Tk... MI> 1) Sbaglio, o non e` possibile avere l'equivalente di un MI> metodo "static" (parlando di C++) in una classe? (metodo non MI> legato a una particolare istanza) MI> Del tipo (e` sbagliato): MI> class Pincopallo: _values={ "Lun": "Lunedi`", "Mar": MI> "Martedi`", "Mer": "Mercoledi`" } MI> def getValue(value): return MI> Pincopallo._values[value] MI> print Pincopallo.getValue("Lun") MI> capisco che si tratta di un C++-ismo (o anche di un MI> Java-ismo), pero` a una prima occhiata non ci starebbe poi MI> tanto male... Python non dispone ufficialmente di metodi di classe, anche se ci sono svariati artefizi che ne consentono l'uso. Se ne parla moltissimo su c.l.p., e non sono proprio sicuro che nella 2.1 non ci sia già uno di questi metodi. Quello che tu hai provato però funziona, anche se non come vuoi tu :) class Pincopallo: _values = {'Lun': 'Lunedi', 'Mar': 'Martedi'} def getValues (self, value): return self._values[value] # end def # end class class Foobar(Pincopallo): _values = {'Lun': 'Monday', 'Mar': 'Tuesday'} # end class if __name__ == '__main__': p = Pincopallo() print p.getValues('Lun') f = Foobar() print f.getValues('Lun') # end if $ python p.py Lunedi Monday Quindi le classi *hanno* delle variabili "di classe"... Questo è uno degli artefizi per simulare i "metodi" di classe... Un errore comune, nella scrittura di un "metodo", è non dichiararne il primo argomento, "self": mentre in C++ è implicito, qui lo devi mettere per esplicito. ciao, lele. -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele@xxxxxxxxxx | -- Fortunato Depero, 1929. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx