[Python-Dev] Experiences with Creating PEP 484 Stub Files

Phil Thompson phil at riverbankcomputing.com
Wed Feb 10 13:01:55 EST 2016


On 10 Feb 2016, at 5:52 pm, Guido van Rossum <guido at python.org> wrote:
> 
> On Wed, Feb 10, 2016 at 1:11 AM, Phil Thompson
> <phil at riverbankcomputing.com> wrote:
>> I understand now. The documentation, as it stands, is correct and consistent but (to me) the meaning of Optional is completely counter-intuitive. What you suggest with str = ... is exactly what I need. Adding a section to the docs describing that should clear up the confusion.
> 
> I tried to add some clarity to the docs with this paragraph:
> 
>   Note that this is not the same concept as an optional argument,
>   which is one that has a default.  An optional argument with a
>   default needn't use the ``Optional`` qualifier on its type
>   annotation (although it is inferred if the default is ``None``).
>   A mandatory argument may still have an ``Optional`` type if an
>   explicit value of ``None`` is allowed.
> 
> Should be live on docs.python.org with the next push (I don't recall
> the delay, at most a day IIRC).

That should do it, thanks. A followup question...

Is...

    def foo(bar: str = Optional[str])

...valid? In other words, bar can be omitted, but if specified must be a str or None?

Thanks,
Phil


More information about the Python-Dev mailing list