[python] Pocet instancí ob jektu

Jiri Vit jirivit na jirivit.com
Středa Leden 25 14:45:51 CET 2006


Aha, no clovek se porad uci :-)

Muj dotaz o kontrole by tedy byl relevantnejsi v pripade,
ze by se zkouselo neco takoveho?:

class trida: 
    inst=0 
    def __init__(s,new=True):
        if new:
            trida.inst += 1

Pak by stacilo jen zkontrolovat, jestli nova promenna jiz obsahuje
instanci vytvorenou z te tridy. Napadl me nejaky spinavy trik jako:
try:
    if trida.__name__ == str(prom.__class__)[9:]:
        prom = trida(False)
except NameError:
    prom = trida()

Taky by me zajimal ten postup s weakref.

Jirka

 

On Wed, 25 Jan 2006 12:09:48 +0100, David Necas (Yeti) wrote
> On Tue, Jan 24, 2006 at 02:20:32PM +0100, Jiri Vit wrote:
> > Chybi tam kontrola. Kdyz udelam 2x
> > >>> c=MojeTrida()
> > >>> c=MojeTrida()
> >
> > pak mam v tridni promenne inst dva objekty
> 
> Kontrola čeho? Primární problém je v tom, že si třída drží
> referenci na každou svou instanci. Jednou vytvořené instance
> proto nemohou nikdy zaniknout. Když už by se to dělalo
> takhle, měly by se používat slabé (weak) reference.
> 
> Yeti
> 
> --
> That's enough.
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


--
Jiri Vit
tel.  608182795
mail: jirivit na jirivit.com
web:  http://jirivit.com




Další informace o konferenci Python