Steven D'Aprano wrote: > On Mon, 31 Dec 2007 08:03:22 -0800, Scott David Daniels wrote: >> Steven D'Aprano wrote: ... >>> def chain(meth): # A decorator for calling super. >>> def f(self, *args, **kwargs): >>> result = meth(self, *args, **kwargs) >>> S = super(self.__class__, self) >> This line is the problem. The class parameter needs to be the class >> (B in this case) in which the chaining method is defined, not that >> of the object itself. > One minor correction: the class parameter needs to be the class *itself*, > not the class *name* (which would be the string "B"). Point taken.
> I don't quite understand your description though. What do you mean "the > chaining method is defined"? chain() is defined outside of a class. The class where f (the chaining method) is defined; equivalently, the class in which the @chain is used. -Scott -- http://mail.python.org/mailman/listinfo/python-list