Use dict version guards to avoid the attribute lookup on cpdef method calls for Python subclasses.
This does not help for classes with "__slots__", nor does it help for alternating calls to different objects. There is probably still space for improvements, e.g. by using an array of object dict versions. See #2313.
Showing with 103 additions and 0 deletions