On Fri, Jan 23, 2015 at 1:57 AM, Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote: > Chris Angelico wrote: > >> Hold on a moment, how often do you really do this kind of thing with >> "might be one of them or a sequence"? > > isinstance(obj, one_class_or_tuple_of_classes) > issubclass(cls, one_class_or_tuple_of_classes) > mystr.startswith(prefix_or_tuple_of_prefixes) > mystr.endswith(suffix_or_tuple_of_suffixes) > template % one_string_or_tuple_of_strings # or a dict :-) > > > I'm not suggesting that the specific example is a good one, but the > principle is sound.
All of your examples are "might be one of them or a tuple". Not "sequence", "tuple". That gets around the problem of recognition, because in no case is a single tuple a valid argument. I suspect it would be possible to use TypeVar to create a nice "OneOrMore" like you suggested, but for reliability, it should probably be "or tuple" rather than "or sequence". ChrisA -- https://mail.python.org/mailman/listinfo/python-list