[Python-ideas] Runtime types vs static types
Terry Reedy
tjreedy at udel.edu
Sun Jul 2 14:09:38 EDT 2017
More information about the Python-ideas mailing list
Sun Jul 2 14:09:38 EDT 2017
- Previous message (by thread): [Python-ideas] Runtime types vs static types
- Next message (by thread): [Python-ideas] Runtime types vs static types
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/2/2017 7:57 AM, Steven D'Aprano wrote: > On Sun, Jul 02, 2017 at 09:38:11PM +1000, Chris Angelico wrote: >> On Sun, Jul 2, 2017 at 9:16 PM, Steven D'Aprano <steve at pearwood.info> wrote: >>> If we want to support that optimization, we could add an optimization >>> flag that strips annotations at runtime, just as the -OO flag strips >>> docstrings. That becomes a matter of *consenting adults* -- if you don't >>> want annotations, you don't need to keep them, but it then becomes your >>> responsibility that you don't try to use them. (If you do, you'll get a >>> runtime AttributeError.) >> >> IMO people should act as if this will eventually be the case. >> Annotations should be evaluated solely for the purpose of populating >> __annotations__, and not for any sort of side effects - just like with >> assertions. > > Avoiding side-effects is generally a good idea, but I think that's > probably taking it too far. > > I think that we should assume that > > def func(x:Spam()): > ... > > will always look up and call Spam when the function is defined. But we > should be prepared that > > func.__annotations__ > > might not exist, if we're running in a highly-optimized mode, or > MicroPython, or similar. Code that does not control the compilation of the file with func should also not assume the existence of func.__doc__. On the other hand, programs, such as IDEs, that do control compilation, by calling the standard compile(), can assume both attributes if they pass the appropriate compile flags. -- Terry Jan Reedy
- Previous message (by thread): [Python-ideas] Runtime types vs static types
- Next message (by thread): [Python-ideas] Runtime types vs static types
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list