Steven Bethard wrote: > Nicolas Fleury wrote: > >> I was wondering if it would make sense to make staticmethod objects >> callable, so that the following code would work: >> >> class A: >> @staticmethod >> def foo(): pass >> bar = foo() > > Do you have a real-world use case? I pretty much never use > staticmethods (preferring instead to use module-level functions) so I'm > having a hard time coming up with some code where this would be really > useful. I'm also a little wary of breaking the parallel between > classmethod and staticmethod which are currently *just* descriptors > (without any other special functionality).
Well, IMHO, if staticmethod is worth being standard, than calling these static methods inside the class definition is worth being supported. To be honest I don't use static methods like you, but users come see me asking "Why?" and I find their code logically structured so I conclude there's a usability problem here. > Maybe instead of making just staticmethods callable, both staticmethods > and classmethods could gain an 'im_func' attribute like bound and > unbound methods have? I don't like it either (__get__ can be called anyway). My problem is the expectation of the user. I wonder if it should just work. Adding a few lines of code in staticmethod is worth it if it avoids all these questions over and over again, no? Regards, Nicolas -- http://mail.python.org/mailman/listinfo/python-list