[python] dynamicky vytvarene podtridy?
Jan Matejka
matejka na cat.cz
Čtvrtek Září 30 15:10:20 CEST 2004
A neslo by to postupnym skladanim metodou combineClasses ?
class a:
def inicializace(self,p):
print "inicializace a " + p
def aa(self):
print "aa"
class b:
def inicializace(self,p):
print "inicializace b " + p
def bb(self):
print "bb"
def combineClasses(x,y):
class z(x,y):
def inicializace(self,p):
x.inicializace(self,p)
y.inicializace(self,p)
return z
cz=combineClasses(a,b)
iz=cz()
iz.inicializace("par")
iz.aa()
Jan Matejka
> -----Original Message-----
> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On
> Behalf Of VANĚK Petr
> Sent: Thursday, September 30, 2004 2:33 PM
> To: Konference uživatelů Pythonu a spol.
> Subject: RE: [python] dynamicky vytvarene podtridy?
>
>
> aha, nova konfera... takze znovu...
>
> tyjo, tak mne jenom rychle napadlo, tedy jestli jsem to dobre
> pochopil, ze kdyz nelze pouzit klasickou vicenasobnou
> dedicnost, muzes udelat neco =
>
> jako "mapovani predmetu"
> B -> A
> C -> A
> D -> B
> atd.
> a pak automaticky generujes vsechny mozne kombinace - t.j.
> automaticke kombinace dedicnosti. otazka zni: neni tohle
> pitomost? nejspis ano, protoze bys v podstate musel napsat
> skript, ktery generuje skript a to je cesta do pekel. takze
> doufam, ze jsem to jen spatne pochopil... petr
>
> > Ahoj,
> >
> > mam takovyhle problem:
> > Potrebuji vytvorit seznam predmetu. Co predmet, to
> pythonovsky objekt
> > (nejspis). Kazdy predmet je nejakeho druhu. Druhy predmetu
> > ovsem nejsou jen
> > jednim udajem, nybrz meni celou datovou vybavu (atributy) a
> > nekdy take
> > funkcionalitu (metody) predmetu. Pripada mi tedy logicke, ze
> > druhy budou
> > tridy, ktere dedenim vytvori strom "podobnosti" a predmety
> > budou instance
> > techto trid.
> >
> > priklad:
> >
> > A je spolecnym naddruhem
> > B, C jsou jeho primymi potomky a deli predmety do dvou
> > zakladnich skupin
> > D, E jsou poddruhy B
> > F, G jsou poddruhy C
> >
> > Jenze. Jenze predmety mohou -- diky sve dualni povaze --
> > zastavat nekolik
> > druhu zaroven (napriklad byt D a zaroven G). Vytvorit
> > kombinace vsech trid
> > neni mozne, protoze ten strom je dost velky a hlavne to
> > nemusi byt kombinace
> > jenom dvou trid.
> >
> > Takze se domnivam, ze bych potreboval vytvorit tu tridu
> > (resp. kombinaci trid
> > stavajicich) nejak dynamicky, podle toho, jak bych nacetl
> > definici toho
> > predmetu. Ale nevim jak.
> >
> > Takze, pokud byste nekdo vedel, nebo videl, ze se ubiram
> > spatnym smerem, budu
> > rad za pomoc ;-)
> >
> >
> > --
> >
> > Vladimír Linek <vinil na zagamma.cz>
> > Zagamma Labs
> >
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://hugo.zagamma.cz/mailman/listinfo/python
>
Další informace o konferenci Python