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

Reply via email to