>
> De todas maneras, en tu caso no te sirve subclasear el factory,
> simplemente usa `o = fac(0)`. Tal vez si explicas mejor que es lo que
> intentas hacer?



Como comentaba en mi primer email, se trata de un situacion como esta:


class Base1(object):
    def __init__(self):
        blablabla


class Base2(object):
    def __init__(self):
        blablabla


class MyClass(Base):
    def __init__(self, x):
        self.x = x
        super(MyClass, self).__init__()


donde me gustaria que MyClass pudiese decidir si quiere heredar de Base1 o
de Base2... si es que eso es posible.
Las primeras respuestas que recibi parecian indicar que con una Factory era
trivial, pero la verdad es que no he sido capaz  :)

Lo unico que se me ocurre es hacer una wrapper a MyClass, decidir dentro
del wrapper como construir MyClass, y usar __setattribute__ y
__getattribute__ para "wrappear" las llamadas a metodos de MyClass.
Algo como esto (en pseudo-codigo):


class Base1(object):
    def __init__(self):
        blablabla

class Base2(object):
    def __init__(self):
        blablabla

class Wrapp(object):
    def __init__(self, x):
        if x == ...
             base = Base1
        else:
             base = Base2
        obj = MyClass(base)

    def set(): obj.set()
    def get(): obj.get()
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a