[Python-Dev] PEP 447: add type.locallookup (original) (raw)

Ronald Oussoren ronaldoussoren at mac.com
Thu Sep 19 12:04:48 CEST 2013


On 19 Sep, 2013, at 12:00, Paul Moore <p.f.moore at gmail.com> wrote:

On 19 September 2013 10:32, Ronald Oussoren <ronaldoussoren at mac.com> wrote:

The first time a method is called the bridge looks for an Objective-C selector with the same name and adds that to the class dictionary. This works fine for normal method lookups, by overriding getattribute, but causes problems with super: super happily ignores getattribute and peeks in the class dict which may not yet contain the name we're looking for and that can result in incorrect results (both incorrect AttributeErrors and totally incorrect results when the name is not yet present in the parent class' dict but is in the grandparent's dict). As an alternative approach, could you use a custom dict subclass as the class dict, and catch the peeking in the class dict that way? Or is this one of those places where only a real dict will do?

The C code uses PyDict_GetItem and AFAIK that doesn't look for a getitem implementation in a subclass.

Ronald

Paul



More information about the Python-Dev mailing list