[Python-ideas] fixing mutable default argument values (original) (raw)

George Sakkis gsakkis at rutgers.edu
Thu Jan 18 21:39:01 CET 2007


On 1/18/07, Jim Jewett <jimjjewett at gmail.com> wrote:

On 1/18/07, Josiah Carlson <jcarlson at uci.edu> wrote:

> Joel Bender <jjb5 at cornell.edu> wrote: > > Calvin Spealman wrote: > > > I dont understand how that would be different than doing > > > c = c if c is not None else Bar([2,3,4]) But he actually ones a variable that does keep state between calls (like a mutable default arg), but can't be overridden. > With your proposal, you are seeking to attempt to fix a "problem" that > no one has complained about. -1 . Sure they have, and they've solved it (under different names) in plenty of other languages. In python, the only current solution seems to be turning the function into a class (with self) or at least a closure. People have griped about this.

User-defined function attributes is another handy solution.

For What Its Worth, my personal opinion is that having to create an object instead of a function is annoying, but not so bad (or so frequent) that it is worth special syntax.

Function attributes fit the bill really good if writing a class is too much overhead.

George



More information about the Python-ideas mailing list