Medardo Rodriguez (Merchise Group) wrote:
On Tue, Aug 26, 2008 at 4:10 PM, Bruno Desthuilliers
<[EMAIL PROTECTED]> wrote:
In Python, there's *no* relationship between classmethods and metaclasses.
In OOP the concept of meta-class has everything to do with class
methods, regardless if is in Python, SmallTalk or CLOSS. "classmethod"
decorator it's just a syntax sugar structure to define them. There is
no difference (conceptually) on "method1" and "method2":
<sample>
class MetaXClass(type):
def Method1(self): pass
class Xclass(object):
__metaclass__ = MetaXClass
@classmethod
def Method2(self): pass
</sample>
Not quite:
>>> class MetaXClass(type):
... def method1(self): pass
...
>>> class XClass(object):
... __metaclass__ = MetaXClass
... @classmethod
... def method2(self): pass
...
>>> xc = XClass()
>>> xc.method1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'XClass' object has no attribute 'method1'
>>> xc.method2
<bound method MetaXClass.method2 of <class '__main__.XClass'>>
>>>
-Matt
--
http://mail.python.org/mailman/listinfo/python-list