Bug? Feature? setattr(foo, '3', 4) works!
random832 at fastmail.us
random832 at fastmail.us
Fri Dec 19 10:33:08 EST 2014
On Fri, Dec 19, 2014, at 07:23, Ben Finney wrote:
> Cem Karan <cfkaran2 at gmail.com> writes:
> > I'd like to suggest that getattr(), setattr(), and hasattr() all be
> > modified so that syntactically invalid statements raise SyntaxErrors.
>
> What syntactically invalid statements? The only syntactically invalid
> statements I see you presenting are ones that *already* raise
> SyntaxError.
>
> I think you mean that setting an attribute on an object should be a
> SyntaxError if the resulting attribute's name is not a valid identifier.
> But why should a valid statement produce SyntaxError?
>
> I'm −1 on such a change.
And some APIs - ctypes, for example - actually require using getattr
with an invalid identifier in some cases (where attribute access is used
for an underlying concept with names that are usually, but not always,
valid identifiers: in ctypes' case, looking up symbols from DLLs.)
More information about the Python-list
mailing list