On Thu, Jul 22, 2010 at 10:04 AM, Bartosz Tarnowski <bartosz-tarnow...@zlotniki.pl> wrote: > > Hello, guys. > > Python has more and more reserved words over time. It becomes quite > annoying, since you can not use variables and attributes of such names. > Suppose I want to make an XML parser that reads a document and returns an > object with attributes corresponding to XML element attributes: > >> elem = parse_xml("<element param='boo'/>") >> print elem.param > boo > > What should I do then, when the attribute is a reserver word? I could use > trailing underscore, but this is quite ugly and introduces ambiguity. > >> elem = parse_xml("<element for='each'/>") >> print elem.for_ #????? >> elem = parse_xml("<element for_='each'/>") >> print elem.for__ #????? > > My proposal: let's make a syntax change. > > Let all reserved words be preceded with some symbol, i.e. "!" (exclamation > mark). This goes also for standard library global identifiers. > > !for boo in foo: > !if boo is !None: > !print(hoo) > !else: > !return !sorted(woo) > > > This would allow the user to declare any identifier with any name: > > for = with(return) + try > > What do you think of it? It is a major change, but I think Python needs it. > > -- > haael >
I'm not a fan of this - I'd much prefer[1] that we use the exclamation point to determine scope: foobar - local !foobar - one up !!foobar - higher than the last one !!!foobar - even higher in scope We could do the inverse as well; if you append ! you can push variable down in scope. Jesse [1] I am not serious. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com