[python] dynamicky vytvarene podtridy?
Jaroslav Pachola
j_p_misc na centrum.cz
Čtvrtek Září 30 16:49:38 CEST 2004
Hezke reseni, sice ta dedicnost ma trosku komplikovany graf (degenerovany
binarni strom), ale to nemusi byt vubec na skodu. Vzhledem k tomu, ze jste
pouzil "old style classes", slo by to provest i pomoci modifikace __bases__,
coz u trid noveho stylu nejde.
JP
Dne Thursday 30 of September 2004 16:27 Jan Matejka napsal:
> > Ano slo -- jde v podstate o vlastni konstruktor, jestli jsem to dobre
> > pochopil.
>
> Spis jsem myslel opakovane vytvareni tridy slozene ze dvou trid. Trochu
> jsem ten priklad upravil na rekurzivni volani combineClasses.
> Nebo Vy mluvite o voze a ja o koze?
>
> class a:
> def __init__(self):
> print "init a"
>
> def aa(self):
> print "aa"
>
> class b:
> def __init__(self):
> print "init b"
>
> def bb(self):
> print "bb"
>
> class c:
> def __init__(self):
> print "init c"
>
> def cc(self):
> print "cc"
>
> class d:
> def __init__(self):
> print "init d"
>
> def dd(self):
> print "dd"
>
>
> def combineClasses(clslist):
> if len(clslist)==1:
> return clslist[0]
> else:
> c1=clslist[0]
> c2=combineClasses(clslist[1:])
> class z(c1,c2):
> def __init__(self):
> c1.__init__(self)
> c2.__init__(self)
> return z
>
> print "kombinace a,b"
> cz=combineClasses([a,b])
> iz=cz()
>
> iz.aa()
> iz.bb()
> print "a",issubclass(cz,a)
> print "b",issubclass(cz,b)
> print "c",issubclass(cz,c)
> print "d",issubclass(cz,d)
>
>
> print "kombinace a,c,d"
> cz=combineClasses([a,c,d])
> iz=cz()
> iz.aa()
> iz.dd()
> iz.cc()
> print "a",issubclass(cz,a)
> print "b",issubclass(cz,b)
> print "c",issubclass(cz,c)
> print "d",issubclass(cz,d)
>
> Jan Matejka
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://hugo.zagamma.cz/mailman/listinfo/python
--
>pyobfuscate is a source code obfuscator: It makes Python source code
>hard to read for humans, while still being executable for the Python
>interpreter.
Of course, this facility comes as standard with Perl.
(From Python mailing list)
Další informace o konferenci Python