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

Reply via email to