[Python-ideas] Proposal: Use mypy syntax for function annotations

Steven D'Aprano steve at pearwood.info
Mon Aug 25 03:30:23 CEST 2014


On Sat, Aug 23, 2014 at 07:00:54PM -0400, Antoine Pitrou wrote:
> 
> Le 23/08/2014 13:25, Steven D'Aprano a écrit :
> >>
> >>It's not a new use. A type class is a class, and calling it is just
> >>instantiating that class. There's nothing new here. If you think that's
> >>a bit "meta", it's no different than e.g. higher-order functions.
> >
> >There's no instantiation during *static* analysis, because the code
> >hasn't run yet.
> 
> In your idea of "static analysis", it hasn't. Because you think it 
> should involve some kind of separate syntax analysis tool that has 
> nothing to do with regular Python. 

That's not "my" idea of static analysis, that is the standard definition 
of "static" as happening at compile-time. If it happens at runtime, it's 
not static.


> But Python is powerful enough to let 
> you do that using normal introspection of modules.

This proposal isn't just about the Python interpreter, its also about 
static tools like linters, IDEs and editors.


> And it's *exactly* how we are exposing function annotations (and also 
> docstrings, etc.): using runtime-accessible introspection information 
> which is gathered by importing modules and therefore actually 
> *executing* toplevel module code. Not merely compiling it.

Correct, the annotations will be available at runtime as well as 
compile-time. But tools like linters and editors will rely on static 
analysis, not dynamic run-time checks, and that's Guido's intention. 
Here's his initial post:

https://mail.python.org/pipermail/python-ideas/2014-August/028618.html



-- 
Steven


More information about the Python-ideas mailing list