[Python-ideas] staticmethod and classmethod should be callable
J.Demeyer at UGent.be
Thu Jun 21 05:08:10 EDT 2018
On 2018-06-21 11:00, INADA Naoki wrote:
> When Python 4, I think we can even throw away classmethod and
> staticmethod object.
> PyFunction can have binding flag instead, like METH_CLASS and
> METH_STATIC for PyCFunction.
> classmethod and staticmethod is just a function which modify the flag.
One issue with that idea is that staticmethod, classmethod can actually
arbitrary objects, not only Python functions. In fact, even this object
can be created:
<staticmethod object at 0x7f74ab9c55f8>
So in that sense, they behave more like "method" which can also wrap
arbitrary callables (in this case, callability is checked). So I'm
vaguely thinking of putting "method", "staticmethod" and "classmethod"
on top of a common base class for things wrapping callables.
More information about the Python-ideas