On Fri, Sep 30, 2011 at 9:50 PM, Fletcher Johnson <flt.john...@gmail.com> wrote: > Is it possible to overload operators for a function? > > For instance I would like to do something roughly like... > > def func_maker(): > def func(): pass > > def __eq__(other): > if other == "check": return True > return False > > func.__eq__ = __eq__ > return func > > newfunc = func_maker() > newfunc == "check" #true > newfunc == "no" #false
You can write a callable [wrapper] object to get the same effect: class SpecialFunction(object): def __call__(self, actual, args, go, here): return whatever def __eq__(self, other): return other == "check" newfunc = SpecialFunction() newfunc == "check" # => True newfunc(1, 2, 3, 4) #=> whatever Cheers, Chris -- http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list