Yes, factory methods, exactly. If I had a base class ImageReader with children JpegReader and TIFFReader, I will probably add two factory methods ImageReader.makeJpegReader and ImageReader.makeTIFFReader, I will not override ImageReader.__new__ to return sometimes JpegReader instances and sometimes TIFFReader instances. Explicit is better than implicit and all that.
Michele Simionato -- http://mail.python.org/mailman/listinfo/python-list