On 11/24/06, Jim Jewett <[EMAIL PROTECTED]> wrote: > On 11/23/06, Guido van Rossum <[EMAIL PROTECTED]> wrote: > > On 11/23/06, Tony Lownds <[EMAIL PROTECTED]> wrote: > > > I have a working optional argument syntax implementation, I'm hoping > > > to get some direction on > > > the implementation decisions so far.... please see below. > > I would rather see it integrated into a Signature object (Brett had an > implementation), instead of showing up as two separate attributes.
Yes, you're right; I forgot about that. > > > >>> f.func_returns > > > Traceback (most recent call last): > > > File "<stdin>", line 1, in <module> > > > AttributeError: 'function' object has no attribute 'func_returns' > > > I would prefer this to be None. Attributes that don't always exist are > > a pain to use. > > I suspect he was trying to distinguish "returns None" from "Doesn't > say what it returns". There is no good way to do this, but a separate > flag on a Signature object seems the least bad to me. Hm, I think it would be fine if there *was* no distinction. IOW if def foo(a: None) -> None: pass was indistinguishable from def foo(a): pass In fact I think I'd prefer it that way. Having an explicit way to say "no type here, move along" sounds fine. It's different from defaults, whose absence translates in different behavior (i.e., requiring that a value be passed in). (It does imply that we can't use "-> None" to indicate "returns no value". We'd have to spell that as "-> type(None)" or find some other way. I think I don't care. Do others? Collin?) -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com