Il clone di Lele Gaifax ha segretamente scritto: > Quindi le classi *hanno* delle variabili "di classe"... Ah, ecco. Non pensavo ci si potesse riferire agli attributi "di classe" anche con self.attributo. Invece e` possibile (e parecchio comodo per giunta). ###################################################################### def doSomething(): print "Initializer called" return 123 class Pincopallo: _value = doSomething() def getValue2(self): return Pincopallo._value def getValue (self): return self._value def setValue(self,value): self._value = value print "Before creating instances" p1 = Pincopallo() p2 = Pincopallo() print "Value of p1 is %d" % (p1.getValue()) print "Value of p2 is %d" % (p2.getValue()) print "p2.setValue(456)" p2.setValue(456) print "Value of p1 is %d" % (p1.getValue()) print "Instance value of p2 is %d" % (p2.getValue()) print "Class value of p2 is %d" % (p2.getValue2()) ###################################################################### Initializer called Before instantiating Value of p1 is 123 Value of p2 is 123 p2.setValue(456) Value of p1 is 123 Instance value of p2 is 456 Class value of p2 is 123 > Un errore comune, nella scrittura di un "metodo", è non dichiararne il > primo argomento, "self": mentre in C++ è implicito, qui lo devi > mettere per esplicito. Su questo non ho dubbio alcuno. E` che mi pareva naturale che un metodo non legato ad una particolare istanza (e che quindi non lo usa) non lo avesse, tutto qui. Rileggendo meglio la FAQ, in realta` scopro che i metodi di una classe devono necessariamente essere sempre legati ad un'istanza su cui agire, punto e basta. Uhm, chissa` se fra i proposal c'e` qualcosa: dopotutto, se vale la distinzione tra ``Nomeclasse.attributo'' e ``istanza.attributo'' (vedi sopra), perche` non dovrebbe valere la stessa cosa anche per i metodi? Chiaramente non e` un dramma, e` solo che ero abituato in maniera diversa. :-) -- UNIX diapers by Pannolini USPTO 2039887 http://www.uspto.gov Matteo Ianeselli ianezz AT sodalia.it (+39) 0461 316452 Visita il LinuxTrent: http://www.linuxtrent.it -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx