At Sunday 14/1/2007 20:32, [EMAIL PROTECTED] wrote:

Of course, none of this really has anything to do with rational
numbers.  There must be many examples of classes for which internal
calls to __init__, from other methods of the same class, require
minimal argument processing, while external calls require heavier and
possibly computationally expensive processing.  What's the usual way
to solve this sort of problem?

In some cases you can differentiate by the type or number of arguments, so __init__ is the only constructor used. In other cases this can't be done, then you can provide different constructors (usually class methods or static methods) with different names, of course. See the datetime class, by example. It has many constructors (today(), fromtimestamp(), fromordinal()...) all of them class methods; it is a C module.

For a slightly different approach, see the TarFile class (this is a Python module). It has many constructors (classmethods) like taropen, gzopen, etc. but there is a single public constructor, the open() classmethod. open() is a factory, dispatching to other constructors depending on the combination of arguments used.


--
Gabriel Genellina
Softlab SRL

        

        
                
__________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to