On 05/09/2017 10:28 AM, Guido van Rossum wrote: > There's a proposal to change one detail of PEP 484. It currently says: > > An optional type is also automatically assumed when the default value is > |None|, for example:: > > |def handle_employee(e: Employee = None): ... | > > This is equivalent to:: > > |def handle_employee(e: Optional[Employee] = None) -> None: ... | > > > Now that we've got some experience actually using Optional with mypy > (originally mypy ignored Optional), we're beginning to think that this > was a bad idea. There's more discussion at > https://github.com/python/typing/issues/275 and an implementation of the > change (using a command-line flag) in > https://github.com/python/mypy/pull/3248. > > Thoughts? Some function declarations will become a bit more verbose, but > we gain clarity (many users of annotations don't seem to be familiar > with this feature) and consistency (since this rule doesn't apply to > variable declarations and class attribute declarations).
I've been code-reviewing a lot of diffs adding type coverage over the last few months, and implicit-Optional has been among the most common points of confusion. So I favor this change. It might be nice to have a less verbose syntax for Optional, but that can be a separate discussion. Carl
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com