2 Jan 2007 19:29
Re: [Python-3000] PEP 3107 Function Annotations: overloadable ->
Tony Lownds <tony@...> wrote: > On Jan 1, 2007, at 10:34 PM, Josiah Carlson wrote: > > -1 on the -> operator as specified in the email you link. There is no > > reason to add aribtrary operators for call-site annotations. > > What was the arbitrary operator? -> is not arbitrary, and there was a > reason given to add it. I misunderstood portions of the post. > > PEP 3107 > > has already defined the syntax for function definition site > > annotations > > as follows... > > > > def name(argument=default:annotation) -> annotation: > > body > > You mean > > def name(argument:annotation=default) Thank you for the correction. Maybe I'm the only one, but I would prefer the default value to come before the annotation. > > The mail you link, talks about an arbitrary -> operator for call-site > > annotations. Without seeing actual use-cases where a -> operator > > would > > be useful in the real-world, I can't help but be -1 on the -> operator > > and -1 on the __returns__ method. > > That email had a use case... The gain is being able to write > > def wrap(text: str, split: Function(str)-> list): > > instead of > > def wrap(text: str, split: Function(str) == list): > > or > > def wrap(text: str, split: Function(str, returns=list)): > > or one of the other methods that Kay came up with. Kay's mail specified: maptype = Function( Function(object)->object, list) -> list That looks to me like the -> operator being used anywhere the user desires. With your examples above, I see the use-case, but I'm still -1 (for the same reasons). For other reasons to be -1 on ->, we can look at how it would be abused to violate the one obvious way to do things... Stack() -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 t = Tree() t -> (t -> (1,2), t -> (3,4)) Or for a concrete example... class mylist(list): def __returns__(self, arg): self.append(arg) return self mylist() -> 1 -> 2 -> 3 -> 4 -> 5 Right now those things aren't done because the punctuation for doing it isn't as natural as -> would be. - Josiah
RSS Feed