On Sat, May 14, 2016 at 11:47 AM, Peter Ludemann <pludem...@google.com> wrote:
> I think that Type[C,D] would mean Union[Type[C], Type[D]], but I'm not > sure ... I should probably talk to a typing expert about this. > (Sorry for thinking out loud; but if we decide that Type[C,D] doesn't make > sense, we need to prohibit it) > It sounds iffy enough to prohibit. > I suppose I'm asking: do we allow new_user(Type[BasicUser, ProUser])? > That looks like a call, but Type[] is something to use in the definition. > Here's a trivial example that off the top of my head makes sense: > > BasicOrProUser = TypeVar('BasicOrProUser', BasicUser, ProUser) > def new_user(name: str, user_factory: Type[BasicOrProuser]) -> > BasicOrProUser: > return user_factory(name) > That looks reasonable and only has one parameter to Type[]. > Or must the Type[...] item have been defined with a TypeVar(..., > bound=...), in which case multiple types aren't allowed with Type[...]? > You can use whatever you want. If you want to write Type[int] go right ahead. Even Type[Union[int, str]] should be allowed. There is *usually* a good reason to use a type variable though -- without one the return type would be the base class. (But then again maybe that could be what you want, or you might not even have a return type, e.g. when the thing just gets thrown into the database.) --Guido > > > On 14 May 2016 at 11:30, Guido van Rossum <gvanros...@gmail.com> wrote: > >> What would Type[C, D] mean? >> >> --Guido (mobile) >> On May 14, 2016 11:21 AM, "Peter Ludemann via Python-Dev" < >> python-dev@python.org> wrote: >> >>> Is Type[C,D] allowed? Or should multiple types be restricted to TypeVar? >>> >>> _______________________________________________ >>> Python-Dev mailing list >>> Python-Dev@python.org >>> https://mail.python.org/mailman/listinfo/python-dev >>> Unsubscribe: >>> https://mail.python.org/mailman/options/python-dev/guido%40python.org >>> >>> > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com