Curt Hagenlocher wrote:
There seem to be two separate "wants" that relate to this topic:
Good observation.
1. Preventing the "noob" mistake of saying "def f(x = {})" and expecting that a new empty dictionary will be produced for each call, and
As a couple of us have suggested, this, like similar jobs, should be handled by program checkers. I leave it to someone else to see if existing programs already check and warn and, if not, suggest this to their authors.
2. Creating a more concise syntax for saying def f(x = UNDEF): if x is UNDEF: x = {}
So far, the discussion seems to have revolved entirely around the second request -- which I find by far less compelling than the first; it's simply not a painful-enough pattern to warrant a special bit of syntax. Furthermore, it doesn't do anything to address the first desire.
The existing pattern explicitly says what one wants done. I suspect editors with a macro facility could be given a macro to do most of the boilerplate writing. tjr