
@ Mike Graham
Of course, if a keyword is not preceded by a dot, it would be treated as a reserved word, just like now.
with = 3 # syntax error I don't see how this is a real improvement over the current convention, to add a trailing underscore, so that programs really needing to use the name "with" would use "with_". This does not introduce any new syntax and maintains the same level of backwards comparability your suggestion does.
But the trailing underscore is treated as a part of an identifier, while the preceding dot is not. This is important if I want to have an identifier named exactly "with", with no other characters (no pun itended). As I said, I want sometimes to import some non-Python namespace, i.e. a Pascal program. If all identifiers are allowed, there would never be a clash of reserved words. @ Terry Reedy
This very fact makes us *very* reluctant to add new keywords, which I think is a pretty good thing.
So my change hits two birds with one stone: programmers could use any word as an identifier, developers could use any word as a token. Perfect solution.
as = 4 # syntax error
Read my proposal carefully. The module could access this name with a preceding dot:
.as = 4 # access to global and local variables
@ Sergio Surkamp
Why don't you use underscore instead of a dot?
As I said, the underscore is a part of a name, while the dot isn't. @ Brain Curtin
Names tend to be nouns, so first I can't imagine why you'd want "with" as a name, but you could exchange almost all keywords in the example and it's not a great case. Making this change rather than working around poor name choice gets a -1 from me.
First of all, many nouns are reserved, i.e. "object" or "class". Second: variable names are usually nouns indeed, but functions and methods are often verbs, while named parameters can be prepositions and adverbs. For example:
turtles.fight(with=honour)
Python kidnapped many verbs and prepositions and made them reserved. However, no matter what we say, it's the programmer's choice which word to use. If he has a reason to use prepositions as variable names, it's none of our business. Regards, Bartosz Tarnowski --------------------------------------------- Ksiegowa radzi: Jak zaÅozyc firme w 15 minut? http://linkint.pl/f2968