Michael Yanowitz wrote: > Maybe I am missing something, but from what I've seen, > it is not possible to overload functions in Python. That > is I can't have a > def func1 (int1, string1): > and a > def func1 (int1, int3, string1, string2): > without the second func1 overwriting the first.
Correct. > However, operators can be overloaded. > So can I define a new operator? If so, can I > define func1 as an operator? No. Operators in Python are merely syntax for "magic methods" on the corresponding type. For instance, x + y would call x.__add__(y). In this sense you are not really "overloading" the operator, you are simply defining or overwriting its behavior (just like above, where the second func1 overwrites the previous). > (on the side, I have always wanted to define the > ++ operator as +=1. Is that possible?) No, for the reason above -- there is no magic method associated with ++, which isn't a real Python operator. -- Brian Beck Adventurer of the First Order -- http://mail.python.org/mailman/listinfo/python-list