[Python-Dev] why different between staticmethod and classmethod on non-callable object? (original) (raw)

Benjamin Peterson benjamin at python.org
Wed Sep 2 00:31:26 CEST 2009


2009/9/1 Greg Ewing <greg.ewing at canterbury.ac.nz>:

Brett Cannon wrote:

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). I think it just checks that there's something in the tpcall slot, which is reasonable -- if it's empty, there's no way that calling the object could ever succeed, so you might as well fail early.

It depends on whether you're keeping the "callable" object around or not. Somebody could add a call method later.

-- Regards, Benjamin



More information about the Python-Dev mailing list