[Tutor] classmethod, staticmethod functions (decorator related)
Steven D'Aprano
steve at pearwood.info
Mon Sep 13 01:13:25 CEST 2010
On Mon, 13 Sep 2010 06:05:23 am Alan Gauld wrote:
> I think static methjods are largely a mistake of history. ISTR They
> were
> introduced into python before class methods (not by much - one
> release?)
No, they were introduced at the same time. But it turned out that the
use cases Guido van Rossum envisaged for them weren't as compelling as
he first imagined. At some point he wrote that staticmethod was the
only Python feature where there was no example of it being used in the
standard library, apart from tests to ensure that staticmethod worked
correctly.
Of course that doesn't mean that staticmethod is a bad feature, only
that it's a very specialized function. It probably should have been
moved into functools.
If anyone is interested in descriptors like classmethod and
staticmethod, I have published a recipe for a third member of the
family:
http://code.activestate.com/recipes/577030/
"dualmethod" creates a method that receives the instance when you call
it normally from the instance, and the class when you call it from the
class. This makes it like a cross between ordinary methods and class
methods.
--
Steven D'Aprano
More information about the Tutor
mailing list