I'm trying to understand the description of method object creation in the python 2.6 language reference (3.2. The standard type hierarchy) with little success. The points knocking me are:
"User-defined method objects may be created when getting an attribute of a class (perhaps via an instance of that class), if that attribute is a user-defined function object, an unbound user-defined method object, or a class method object. When the attribute is a user-defined method object, a new method object is only created if the class from which it is being retrieved is the same as, or a derived class of, the class stored in the original method object; otherwise, the original method object is used as it is." It is a bit of a tongue-twister for me. What the last sentence means? Please, I beg for a simple example of the different objects (user defined function, user defined method, class method) refered. Are maybe the refered objects exemplified by : #python 3.1 class Klass(): def met(self): print('method') def func(): print('function') @classmethod def kmet(klass): print('classmethod') or it is talking about another thing? What is the difference with python 3 where there is no mention to the unbound user-defined method object (same section in python 3 language reference): "User-defined method objects may be created when getting an attribute of a class (perhaps via an instance of that class), if that attribute is a user-defined function object or a class method object." I'm trying to learn, however the task is revealing as an enormous undertaking :-) JA -- http://mail.python.org/mailman/listinfo/python-list