I can only think of three ways to reference a name defined in a different file: In an import
statement, as properties of objects and as keyword arguments.
Import statements are implicit assignments, so if Python allowed the following grammar,
you could still import the odd thing that had a reserved name, without bringing that name
into your local namespace.
from <keyword> import <keyword> as <name>
Property names always follow a dot, where only a name is valid, so Python could allow
this too:
<expression>.<keyword>
Keyword arguments are also generally unambiguous, as they have to appear within the
parens of an invocation, before the equals sign:
<expression>(<keyword>=<expression>)
If Python allowed those three examples (but still prevented users from *defining* names
that are keywords) new keywords could be introduced without breaking old code , and the
language would only require relatively minor tweaking.