Callable or not callable, that is the question!
steve+comp.lang.python at pearwood.info
Fri Jul 12 11:49:14 CEST 2013
On Fri, 12 Jul 2013 07:36:30 +0000, Duncan Booth wrote:
> To be a convincing use-case you would have to show a situation where
> something had to be both a static method and a utility method rather
> than just one or the other and also where you couldn't just have both.
I have a class where I have a function that needs to be called both while
the class is being constructed, and afterwards:
do_stuff(23) # This doesn't work.
I have work-arounds: inside the class, I call do_stuff.__func__ instead
of do_stuff, but really, that's ugly and distracting and merely a work-
around for the fact that staticmethods aren't callable. To make them
callable is trivially easy: they just need a __call__ method that calls
__func__ for you.
> If you can persuade me that you need _handle_bool as both a static
> method and a utility function, you probably also need to explain why you
> can't just use both:
> class Parser:
> def _handle_bool(input): ...
> handle_bool = staticmethod(_handle_bool)
That's extremely inelegant. Why have two functions for something which is
More information about the Python-list