On 3 November 2017 at 04:39, Jukka Lehtosalo <jlehtos...@gmail.com> wrote: >> > * forward references: when a type hint contains names that have not been >> > defined yet, that definition needs to be expressed as a string >> > literal; >> >> After all the discussion, I still don't see why this is an issue. >> Strings makes perfectly fine forward references. What is the problem >> that needs solving? Is this about people not wanting to type the leading >> and trailing ' around forward references? > > > Let's make a thought experiment. What if every forward reference would > require special quoting? Would Python programmers be happy with this? Say, > let's use ! as a suffix to mark a forward reference. They make perfectly > fine forward references. They are visually pretty unobtrusive (I'm not > suggesting $ or other ugly perlisms): > > def main(): > args = parse_args!() # A forward reference > do_stuff!(args) # Explicit is better than implicit > > def parse_args(): > ... > > def do_stuff(args): > ... > > Of course, I'm not seriously proposing this, but this highlights the fact > that in normal code forward references "just work" (at least usually), and > if we'd require a special quoting mechanism to use them anywhere, Python > would look uglier and more inconsistent. Nobody would be happy with this > change, even though you'd only have to type a single ! character extra -- > that's not a lot work, right? > > I think that the analogy is reasonable.
I think it also makes a pretty decent argument that pushing function annotations into implicit lambda expressions will be easier to explain to people than converting them into strings, and then having to explain an entirely new complex set of name resolution rules. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ 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