[Python-Dev] Making staticmethod objects callable?

Nicolas Fleury nidoizo at yahoo.com
Thu Mar 2 07:55:03 CET 2006


Guido van Rossum wrote:
> In which context did you find a need for defining a static method and
> calling it inside the class definition? I'm guessing that what you're
> playing dubious scoping games.

I'm not.  I almost never use staticmethod actually.  I find them not 
very pythonic, in my humble own definition of pythonic.

But since staticmethod is a standard built-in, I considered valid the 
question of a programmer relatively new to Python (but obviously 
appreciating its dynamic nature) wondering why calling a static method 
inside a class definition doesn't work.  A use case is not hard to 
imagine, especially a private static method called only to build a class 
attribute.

I don't know the philosophy behind making staticmethod a built-in 
(instead of a function in a module only used in specific occasions), but 
my guess was that what is normal scoping/regrouping in Java/C++/C# was 
worth common use support in Python.  But your comment about "dubious 
scoping games" makes me think I, again, didn't guess right;)

So yes, I'm proposing something I'll probably never use, but I think 
would make Python more "welcoming".

Regards,
Nicolas



More information about the Python-Dev mailing list