<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, 9 May 2017 at 11:11 Carl Meyer <<a href="mailto:carl@oddbird.net">carl@oddbird.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 05/09/2017 10:28 AM, Guido van Rossum wrote:<br>
> There's a proposal to change one detail of PEP 484. It currently says:<br>
><br>
>     An optional type is also automatically assumed when the default value is<br>
>     |None|, for example::<br>
><br>
>     |def handle_employee(e: Employee = None): ... |<br>
><br>
>     This is equivalent to::<br>
><br>
>     |def handle_employee(e: Optional[Employee] = None) -> None: ... |<br>
><br>
><br>
> Now that we've got some experience actually using Optional with mypy<br>
> (originally mypy ignored Optional), we're beginning to think that this<br>
> was a bad idea. There's more discussion at<br>
> <a href="https://github.com/python/typing/issues/275" rel="noreferrer" target="_blank">https://github.com/python/typing/issues/275</a> and an implementation of the<br>
> change (using a command-line flag) in<br>
> <a href="https://github.com/python/mypy/pull/3248" rel="noreferrer" target="_blank">https://github.com/python/mypy/pull/3248</a>.<br>
><br>
> Thoughts? Some function declarations will become a bit more verbose, but<br>
> we gain clarity (many users of annotations don't seem to be familiar<br>
> with this feature) and consistency (since this rule doesn't apply to<br>
> variable declarations and class attribute declarations).<br>
<br>
I've been code-reviewing a lot of diffs adding type coverage over the<br>
last few months, and implicit-Optional has been among the most common<br>
points of confusion. So I favor this change.<br></blockquote><div><br></div><div>I personally like the shorthand, but the type hints I have written are in my own projects so my experience with others is zilch and shouldn't count for much.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
It might be nice to have a less verbose syntax for Optional, but that<br>
can be a separate discussion.<br></blockquote><div><br></div><div>You should be able to do that today with `from typing import Optional as Eh` or whatever your preferred optional/maybe name is. :) </div></div></div>