On 14/06/10 10:43, Greg Ewing wrote:
Georg Brandl wrote:
They don't -- as I said in the other mail, there is no "existing scope rule" that covers assignments that are implicitly global or nonlocal.
I don't see how you come to that conclusion. You just need to disregard the augmented assignment and follow the normal rules based on the presence of plain assignments and global and nonlocal declarations.
What we would actually be doing is going from "augmented assignment determines the scope to assign to based on the same rules as normal assignment" to "augmented assignment determines the scope to assign to based on the same rules as variable referencing" (i.e. wherever we find the value when looking it up on the right hand side, we would put it back in the same place). The semantics aren't the problem here - they can be made perfectly clear and reasonable. The only question is whether they are *sufficiently* useful to justify the effort involved in getting from the status quo to new (more sensible) semantics. Keep in mind, that effort is a lot more than just a patch to CPython to fix our implementation, unit tests and documentation. There's also: - doing the same thing for other implementations (e.g. Jython, IronPython, PyPy) - impact on CPython branches/forks (e.g. Unladen Swallow) - impact on Python-like languages (e.g. Cython) - updating assorted non-PSF documentation (including books) - updating training materials It's for exactly these reasons that the language moratorium has been put in place: so we can't even be *tempted* by this kind of change until everyone has had a chance to at least catch up to the 3.2 state of the world. So, for this suggestion to go any further, it will need: - a PEP (one that acknowledges this is a post-moratorium change) - solid examples of real-world code that would be improved by this (e.g. from the standard library, or from major third party Python applications) Since the most this will save anyone is the occasional global or nonlocal statement, I suspect the second point is going to being a difficult bar to achieve. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia ---------------------------------------------------------------