[python] Metody korenoveho objektu

Radek Kanovsky rk na dat.cz
Úterý Duben 1 17:05:59 CEST 2003


On Tue, Apr 01, 2003 at 04:57:49PM +0200, Radek Kanovsky wrote:

> > > def inst_list (cls) :
> > >     return filter(lambda x: isinstance(x, cls), gc.get_referrers(cls))
> > 
> > Tudy, obavam se, cesta nevede. Mozna reseni, ktera me napadaji
> > 1) zmenit primo definici objectu, zde nevim, zda k tomu nebudu potrebovat 
> > hrabat se v C.
> > 2) pri startu programu rozsirit protkol objectu. Pak by, predpokladam, mely 
> > vsechny loadovane tridy mit prislusne rozsireny interface.
> 
> Urcite by bylo potreba vlezt do zdrojaku pythonu a upravit
> object a mozna type. Pokud byste ovsem netrval na syntaxi
> obj.hmo1.hmo2.hmo3.meth() a spokojil se s hmo3(hmo2(hmo1(obj.meth))),
> tak by to snad slo i bez toho. Otazkou je efektivita toho celeho.

Jeste me napadla jedna moznost: upravit si __import__ tak, aby
prepsal ve vsech bajtkodech obj.hmo1.hmo2.hmo3.meth() na
hmo3(hmo2(hmo1(obj.meth :-))) To by slo mozna i na urovni pythonu.

Radek Kaňovský


Další informace o konferenci Python