What is a classmethod for?

Aahz aahz at pythoncraft.com
Sun Jun 2 13:46:46 EDT 2002

In article <addgv30f4d at enews4.newsguy.com>,
Dennis Peterson <denpeterson at yahoo.com> wrote:
>class C:
>    def foo(cls):
>        print cls
>    foo = classmethod(foo)
>class D(C):
>    pass
>c = C()
>d = D()
>c.foo() prints __main__.C
>d.foo() prints __main__.D
>That's nice, but I can't think of a use for it, given that we have
>inheritance and isinstance(). Can anyone enlighten me?

The point is that you can call class methods *without* creating an


This allows you to manipulate class variables through methods, rather
than using functions or needing to create an instance.
Aahz (aahz at pythoncraft.com)           <*>         http://www.pythoncraft.com/

"In the end, outside of spy agencies, people are far too trusting and
willing to help."  --Ira Winkler

More information about the Python-list mailing list