[Python-Dev] why different between staticmethod and classmethod on non-callable object?
python at rcn.com
Wed Sep 2 01:33:39 CEST 2009
On Sep 1, 2009, at 2:54 PM, Benjamin Peterson wrote:
> 2009/9/1 Brett Cannon <brett at python.org>:
>> On Tue, Sep 1, 2009 at 07:21, Benjamin
>> Peterson<benjamin at python.org> wrote:
>>> 2009/8/31 xiaobing jiang <s7v7nislands at gmail.com>:
>>>> My idea is: here, the two functions (or maybe classes) should
>>>> have the
>>>> same behavior).
>>>> so is this a bug or something I missing ?
>>> I think they should both not check their arguments in __init__ to
>>> allow for duck typing.
>> But what is the point of wrapping something with classmethod or
>> staticmethod that can't be called? It isn't like it is checking
>> explicitly for a function or method, just that it can be called which
>> seems reasonable to me (unless PyCallable_Check() is as off as
>> callable() was).
> Well, if checking if tp_call is not NULL is as bad as callable, then
> I don't see any reason to use staticmethod or classmethod with a
> non-callable, but to be consistent, I would, given the choice between
> removing code and adding another type check, perfer to remove a type
Removing the type check is also my preference.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev