[Python-Dev] New syntax for 'dynamic' attribute access (original) (raw)
Georg Brandl g.brandl at gmx.net
Tue Feb 13 09:33:49 CET 2007
- Previous message: [Python-Dev] New syntax for 'dynamic' attribute access
- Next message: [Python-Dev] New syntax for 'dynamic' attribute access
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Martin v. Löwis schrieb:
Ron Adam schrieb:
I think it's gets a bit awkward in some situations.
if bar->'%s_' % attr < -42: print 'Hello World'_ if bar.['%s' % attr] > -42: print 'Hello World' To me it's easier to parse the second one visually. Ah, precedence. It definitly should be a bracketed form, or else people always wonder what the precedence is, and add parenthesis anyway just to be on the safe side.
Indeed.
BTW, which of these would be correct
(a).[b] Yes. (you can write (a).b today)
(a.)[b] No. (you can't write (a.)b today)
a.[(b)] Yes. (you can write a[(b)] today)
a.([b]) No. (you can't write a([b]) today)
a . [ b ] Yes. (you can write a . b today)
In short, I'd just add a new form to Grammar's trailer:
trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' attrtrailer attrtrailer: '[' test ']' | NAME
This should be consistent and unsurprising.
and what is the semantics of
a.[42]
A TypeError, just as getattr(a, 42) would be.
I think I like the .[] form better, that being a +0 now.
Georg
- Previous message: [Python-Dev] New syntax for 'dynamic' attribute access
- Next message: [Python-Dev] New syntax for 'dynamic' attribute access
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]