[Python-Dev] why different between staticmethod and classmethod on non-callable object? (original) (raw)
Brett Cannon brett at python.org
Wed Sep 2 00:13:20 CEST 2009
- Previous message: [Python-Dev] why different between staticmethod and classmethod on non-callable object?
- Next message: [Python-Dev] why different between staticmethod and classmethod on non-callable object?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Sep 1, 2009 at 14:54, Benjamin Peterson<benjamin at python.org> 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 PyCallableCheck() is as off as callable() was). Well, if checking if tpcall is not NULL is as bad as callable, then yes. 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 check.
Fine by me. I guess it will just fail later with a slightly more cryptic exception.
-Brett
- Previous message: [Python-Dev] why different between staticmethod and classmethod on non-callable object?
- Next message: [Python-Dev] why different between staticmethod and classmethod on non-callable object?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]