J
Joaquin Abian
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
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