On 02/09/16 20:33, Guido van Rossum wrote: > On Fri, Sep 2, 2016 at 10:47 AM, Steve Dower <steve.dower at python.org> wrote: >> "I'm not seeing what distinction you think you are making here. What >> distinction do you see between: >> >> x: int = func(value) >> >> and >> >> x = func(value) # type: int" >> >> Not sure whether I agree with Mark on this particular point, but the >> difference I see here is that the first describes what types x may ever >> contain, while the latter describes what type of being assigned to x right >> here. So one is a variable annotation while the other is an expression >> annotation. > > But that's not what type comments mean! They don't annotate the > expression. They annotate the variable. The text in PEP 484 that > introduces them is clear about this (it never mentions expressions, > only variables). In PEP 484, the section on type comments says: (Quoting verbatim) """ No first-class syntax support for explicitly marking variables as being of a specific type is added by this PEP. To help with type inference in complex cases, a comment of the following format may be used... """ Some mentions of the type of a variable are made in other places in the PEP, but those were all added *after* I had approved the PEP. In other words PEP 484 specifically states that annotations are to help with type inference. As defined in PEP 526, I think that type annotations become a hindrance to type inference. Cheers, Mark. > >> Personally, I prefer expression annotations over variable annotations, as >> there are many other languages I'd prefer if variable have fixed types (e.g. >> C++, where I actually enjoy doing horrible things with implicit casting ;) >> ). >> >> Variable annotations appear to be inherently restrictive, so either we need >> serious clarification as to why they are not, or they actually are and we >> ought to be more sure that it's the direction we want the language to go. > > At runtime the variable annotations are ignored. And a type checker > will only ask for them when it cannot infer the type. So I think we'll > be fine. >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4