[Python-3000] Questions on optional type annotations (original) (raw)

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