Nick Coghlan wrote: > We've also veered fairly far off topic for the Py3k list - further ideas > for positional-only argument syntax or decorators should probably be > kicked around on python-ideas rather than here or python-dev.
For a function specification like this: def f(w, x=1, *, y, z=2): ... My preference is for w and x to be positional only, w is required; y and z are keyword only, y is required. I personally like the idea that for functions like range([start,] stop [,step]) that the function describes which combinations of positional functions are allowed. An alternative would be overloading, which I would use, albeit rarely: def _range(x, y, z): ... def range(y): return _range(None, y, None) def range(x, y): return _range(x, y, None) def range(x, y, z): return _range(x, y, z) As for this relative nonsense: def test([arg1=1, [[*arg2,] arg3=3,]] arg4): ... Someday I'll dig around in the interpreter enough to make this work, just to see what it would be like. But not today. > Another use would be allowing the '_cache trick' with a varargs > function, i.e. > > def f(*args, _cache={}): > ... > > Personally I don't like this trick though... My preference for defining persistent variables with a local scope would be to introduce a "local" or "static" keyword like "global": def f(*args): static cache={} ... But I'm sure that that has been discussed before. Joel _______________________________________________ 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