[Python-ideas] Object grabbing

MRAB python at mrabarnett.plus.com
Mon May 2 18:19:36 EDT 2016


On 2016-05-02 23:06, Erik wrote:
> On 02/05/16 23:00, Joshua Morton wrote:
>> It should be a name error, perhaps 'Accessed object's name cannot be
>> inferred', or a similar error to UnboundLocalException.
>
> You are missing the point.
>
> It is not reasonable to expect an error to be generated at compile time:
> because the compiler has no way of knowing what attributes will exist on
> the objects at runtime.
>
> It is not reasonable to expect an error to be generated at runtime:
> because each and every object would have to be queried as to whether
> they have the attribute to know if there is ambiguity on each and every
> reference to an attribute.
>
> The question of which error or warning or exception should be generated
> is moot ;)
>
You _don't_ have to know attributes are available. It's as simple(?) as: 
when it sees the leading-dot notation, it checks how many expressions 
the enclosing 'with' was followed by.

For example:

     with something:
         .foo()

is OK (the 'with' has 1 expression), but:

    with first_thing, second_else:
        .foo()

might not be OK (the 'with' has 2 expressions).



More information about the Python-ideas mailing list