On Mon, Apr 16, 2007 at 07:47:47PM +0200, Davide Lo Re wrote: >Marco Giusti ha scritto: > >> per sbaglio ho mandato l'email con un indirizzo diverso da quello con >> cui mi sono inscritto alla lista, riposto il mesaggio >> >> >> ciao!! >> >> ho una classe dove voglio creare alcune propieta' che pero' sono >> concettualmente molto simili, qualcosa di simile a: >[snip] >> c'e' un metodo piu' veloce per ottenere lo stesso risultato? >Potresti creare una funzione che prende come primo parametro il nome della >variabile da settare e poi lo usi al suo interno (tra l'altro noto che le >variabili sono in realta' elementi di un dizionario, quindi e' ancora piu' >semplice). >a quel punto usi la funzione partial, dei functools. >http://docs.python.org/lib/module-functools.html >Esempio: >def universal_setter(self, var_name, value): > if value is None: > return > self.vars[var_name] = value > > egg = property(lambda self: self.vars['egg'], >partial(universal_setter, var_name='egg') > foo = property(lambda self: self.vars['foo'], >partial(universal_setter, var_name='foo')
grazie, ma ancora non ero soddisfatto e cosi' cercando ho scoperto che le metaclassi fanno al caso mio, in questo modo posso avere una lista di attributi e posso ciclare la lista e settare le proprieta' in maniera automatica :) posto il link[1] che mi ha dato il suggerimento per i posteri, utilissima la sezione "Adding an attribute with a metaclass (python)" grazie m
signature.asc
Description: Digital signature
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python