On 6/1/2010 1:36 PM, cool-RR wrote:
In Python 2.x there was an "unbound method" type. An unbound method would have an attribute `.im_class` that would refer to the class on which the method was defined.
Actually, I believe it referred to the class through which the function was accessed. The object in the class __dict__ was still the function. In both 2.x and 3.x, a function can be an attribute of more than one class and might not have been defined 'on' any of them. Right or wrong, I believe it was thought that adding the wrapper was more of a nuisance than a benefit. I suppose you could propose that when a function is directly accessed as a class (as opposed to via an instance, when wrapping as a bound method is still done), an __access_class__ attribute could be added, but I do not know if that would even help you. Perhaps a custom metaclass could be written to do this now (I definitely do not know this for sure). Terry Jan Reedy