[Python-3000] Questions on optional type annotations

Neal Norwitz nnorwitz at gmail.com
Thu May 11 08:22:13 CEST 2006


On 5/10/06, Guido van Rossum <guido at python.org> wrote:
>
> Regarding the question what to do if something un-annotated is passed,
> you could have a strict and a lenient mode, sort of the equivalents of
> guilty-unless-proven-innocent and innocent-unless-proven-guilty. I
> guess the latter is more Pythonic, but the former is more in style
> with type checking systems... :-)

I agree with this approach.

> > 2. On a related note, will there be a way to add annotations to
> > callables in extension modules?
>
> It makes sense to allow this. We already allow the C code to specify a
> doc string; I think it makes sense to also specify a signature.

Another benefit of this is the ability to get more info through
introspection.  Right now, you can't even find the number of arguments
of a function implemented in C.  You only know if it takes 0, 1, or
variable # of arguments and if it accepts keywords.

I have a patch that allows specifying the actual # of arguments, but
that was for for performance and didn't provide any signature info.
You could hoist the values passed to PyArgs_ParseTuple into the
PyMethodDef, but there are problems with that.  Some signatures can't
be expressed in a single string passed to ParseTuple.  Another thing
is that the function definition isn't normally close to the
PyMethodDef entry.  That can be a maintenance problem.  I don't know
how to solve these problems.

n


More information about the Python-3000 mailing list