newbie-question: difference between classmethod and staticmethod in Python2.2

Gonçalo Rodrigues op73418 at
Wed Sep 4 10:42:08 EDT 2002

On Wed, 04 Sep 2002 16:33:18 +0200, "T. Kaufmann" <merman at>

>Hi there,
>can anybody explain the difference between 'staticmethod' and 'classmethod' in a simple way in 

Morally, a static method is just a function as a class attribute, while
a class method is a method that is associated with the class, receiving
it implicitly as the first argument (as opposed to intance methods that
receive the instance as the first argument).

class methods are usually used as factory methods (creating and
returning instances of the class) as for static methods I have never
found much use to them since whatever functionality they provide is best
kept at module level. Someone else might have use cases for them.

>When should I use staticmethod or classmethod in classes?
>I thought a staticmethod is a classmethod like in C++/ Java?
>Thanks for help.

Hope this helps somehow, if it was not sufficiently clear, just holler.
Gonçalo Rodrigues

More information about the Python-list mailing list