[Python] property polimorfica

Massimiliano Pippi mpippi a gmail.com
Mar 3 Giu 2014 15:45:39 CEST


On Tue, Jun 3, 2014 at 3:07 PM, Piergiuliano Bossi <pgbossi a gmail.com> wrote:
> Mi vengono in mente 3 modi per farlo:
> 2) usare il costrutto property => old style, richiede per forza di essere
> ridefinito nelle classi derivate, verboso

Puoi usare una lambda per rendere disponibile self al momento giusto:

class Dad(object):
    def get_value(self):
        return self._value

    def set_value(self, value):
        self._value = value

    def __str__(self):
        return "value={}".format(self._value)

    value = property(lambda self: self.get_value(), lambda self, val:
self.set_value(val))


class Son(Dad):
    def set_value(self, value):
        super(Son, self).set_value(value*2)


def func(arg):
    arg.value = 15
    print(arg)

func(Dad())
func(Son())

-- 
M.

http://2014.djangovillage.it/ :: http://tinkergarage.it/


Maggiori informazioni sulla lista Python