OK, now *this* is cool

Ype Kingma ykingma at accessforall.nl
Fri Dec 7 15:03:30 EST 2001


Bruce,

you wrote:
> 
> I think so, at least. Based on Tim's pointer about __subclasses__()
> in 2.2, I can automatically generate an instance of all of my
> subclasses.
> 
> class Flower(object):
>   def __repr__(self):
>     return self.__class__.__name__
> 
> class Gladiolus(Flower): pass
> class Runuculus(Flower): pass
> class Chrysanthemum(Flower): pass
> class Rose(Flower): pass
> class CrystalPassion(Rose): pass
> 
> print [Klass() for Klass in Flower.__subclasses__()]
> 
> Output:
> [Gladiolus, Runuculus, Chrysanthemum, Rose]
> 

print [Klass.__name__ for Klass in Flower.__subclasses__()]

would be easier to understand.
Somehow it doesn't feel right to define
__repr__ as only self.__class__.__name__
since repr() is normally used as the inverse of eval().

Did you consider defining __str__() instead?

Btw. thanks a lot for TIJ. 

Have fun,
Ype

P.S. Did they really make __subclasses__() a method?



More information about the Python-list mailing list