[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