overloading on type?

Burkhard Kloss bk at xk7.com
Wed Feb 14 06:20:16 EST 2001

One design problem I run across frequently in Python is how to nicely deal
with different types of arguments.  For example, writing a date class you'd
often have overloaded constructors in a statically typed language like C++:

class date
    date (const date &);
    date (const string &);
    date (long);

in python, I catch myself writing things along the lines of

class date:
    def __init__ (self, arg):
        if type(arg) == types.InstanceType:
        elif type(arg) == types.IntType:

which works, but just seems so *wrong*.

Maybe I'm just having a conceptual block here as a result of my upbringing
(I'm a longtime and unrepentant C++ user and lover), but surely in a
language as nice as python there must be a better way to do this? :)
Overloading obviously doesn't fit into the conceptual framework of the

Thoughts, anyone?


More information about the Python-list mailing list