On 4/17/06, Talin <[EMAIL PROTECTED]> wrote:

>    def func( first, second=default, third ):

> ... what's the point of supplying a default for the second
> parameter, but not the third?

You may be wrapping an external library.  (Or at least a well-known API.)

I'll grant that the second argument probably ought to have been third,
but with an existing library, it often isn't.  The real choices are

    def func(first, second, third):
        # Everyone supplies the junk second on every call

    def func(first, second=default, third=sentinel):
        if third is sentinel:
            raise ValueError("Need a real 'third' key")

    def func_newname(first, third):

none of which are very satisfying.

That said, I'm not sure the use case is common enough to justify the confusion.

-jJ
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to