[Cython] callable() optimization

Stefan Behnel stefan_ml at behnel.de
Wed May 9 09:19:36 CEST 2012


Vitja Makarov, 08.05.2012 13:27:
> I've noticed regression related to callable() optimization.
> 
> https://github.com/cython/cython/commit/a40112b0461eae5ab22fbdd07ae798d4a72ff523
> 
> class C:
>     pass
> print callable(C())
> 
> It prints True optimized version checks ((obj)->ob_type->tp_call !=
> NULL) condition that is True for both class and instance.
> 
> >>> help(callable)
> callable(...)
>     callable(object) -> bool
> 
>     Return whether the object is callable (i.e., some kind of function).
>     Note that classes are callable, as are instances with a __call__() method.

Ah, right - old style classes are special cased in Py2.

I'll make this a Py3-only optimisation then.

Stefan


More information about the cython-devel mailing list