On 14 Feb 2007 20:54:31 -0800, placid <[EMAIL PROTECTED]> wrote: > class Test: > def __init__(self): > pass > > def puts(self, str): > print str > > def puts(self, str,str2): > print str,str2
you might look into the overloading module and its decorator. source is in the sandbox: http://svn.python.org/view/sandbox/trunk/overload/overloading.py using it, you could re-write your example as: # from overloading import overloaded class Test(object): @overloaded def puts(self, S): print S @puts.register(object, str, str) def puts_X(self, S, S2): print S, S2 two things to note. first, i changed your class to derive from object. I don't know if that's required, but i suspect it is. second, i changed your argument names. the argument names in your example shadow built-in names. you shouldn't do that in any case, but it could become especially confusing using the overloaded decorator, which relies on argument type to select the correct method. -- http://mail.python.org/mailman/listinfo/python-list