[Python-3000] Draft pre-PEP: function annotations
Collin Winter
collinw at gmail.com
Thu Aug 10 04:58:55 CEST 2006
On 8/9/06, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Collin Winter wrote:
> > one library might use string-based annotations to provide
> > improved help messages, like so:
> >
> > def compile(source: "something compilable",
> > filename: "where the compilable thing comes from",
> > mode: "is this a single statement or a suite?"):
> >
> > Another library might be used to provide typechecking for Python
> > functions and methods.
> >
> > def sum(*vargs: Number) -> Number:
> > ...
>
> And what are you supposed to do if you want to write
> a function that has improved help messages *and*
> type checking?
I already answered this in my response to Talin.
The next draft will address this directly.
> > The difficulty inherent in writing annotation interpreting
> > libraries will keep their number low and their authorship in the
> > hands of people who, frankly, know what they're doing.
>
> Even if there are only two of them, they can still
> conflict.
No-one is arguing that there won't be conflicting ideas about how to
spell different annotation ideas; just look at the number of
interface/role/typeclass/whatever implementations.
The idea is that each developer can pick the notation/semantics that's
most natural to them. I'll go even further: say one library offers a
semantics you find handy for task A, while another library's ideas
about type annotations are best suited for task B. Without a single
standard, you're free to mix and match these libraries to give you a
combination that allows you to best express the ideas you're going
for.
Collin Winter
More information about the Python-3000
mailing list