[Python-Dev] Please reject or postpone PEP 526 (original) (raw)

Ivan Levkivskyi levkivskyi at gmail.com
Sun Sep 4 14:13:04 EDT 2016


On 4 September 2016 at 19:59, Nick Coghlan <ncoghlan at gmail.com> wrote:

Nick,

Thank you for good suggestions.

I mostly agree, but the PEP still needs to address the fact that it's only a subset of the benefits that actually require new syntax, since it's that subset which provides the rationale for rejecting the use of a function based approach, while the rest provided the incentive to start looking for a way to replace the type comments.

I think I agree.

I suspect you'll have an easier time of it on that front if you include some examples of dynamically typed code that a well-behaved type-checker must report as correct Python code, such as:

x: Optional[List[Any]] # This is the type of "x" after the if statement, not during it if arg is not None: x = list(arg) if otherarg is not None: # A well-behaved typechecker should allow this due to # the more specific initialisation in this particular branch x.extend(otherarg) else: x = None

There are very similar examples in PEP 484 (section on singletons in unions), we could just copy those or use this example, but I am sure Guido will not agree to word "must" (although "should" maybe possible :-)

Similarly, it would be reasonable to say that these three snippets should all be equivalent from a typechecking perspective:

x = None # type: Optional[T] x: Optional[T] = None x: Optional[T] x = None

Nice idea, explicit is better than implicit.

-- Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160904/2b6c6f1e/attachment-0001.html>



More information about the Python-Dev mailing list