On Mon, Oct 29, 2007 at 02:27:50PM +0000, Duncan Booth wrote regarding Re: Built-in functions and keyword arguments: > > Bruno Desthuilliers <[EMAIL PROTECTED]> > wrote: > > > In the second case, the name of the argument *is* 'object'. Which is not > > the case for the builtin len (which, fwiw, has type > > 'builtin_function_or_method', not 'function', so inspect.getargspec > > couldn't tell me more). > > > ><ot> > > While we're at it, you should avoid using builtin's names for > > identifiers - here, using 'object' as the arg name shadows the builtin > > 'object' class). > ></ot> > > I think you are being a little bit unfair here: help(len) says: > > len(...) > len(object) -> integer > > Return the number of items of a sequence or mapping. > > which implies that the argument to len has the name 'object' (although in > fact it doesn't have a name). The OP was simply asking about the difference > in calling conventions, not proposing to write code using 'object' as the > argument name.
Hmm.... To my mind, that just implies that the *type* of the expected input is an object. Just like the "-> integer" tells you that the type of the output is an integer. If the documentation read "len(s=object) -> integer", then I would expect a keyword argument s typed as an object. Now that might also be misleading, as not all objects have a length (integers, for example raise a TypeError). But the documentation has to say something, which doesn't imply that every argument has to be a keyword. Cheers, Cliff -- http://mail.python.org/mailman/listinfo/python-list