> GvR> if isinstance(x, str) or isinstance(x, unicode): > > is > GvR> apparently too much typing. > > NS> Perhaps we could extend isinstance(). How about > > NS> isinstance(x, str, unicode) > > NS> or > > NS> isinstance(x, (str, unicode)) > > NS> This is a common problem not limited to string types. I often > NS> want to test if something is a tuple or a list for example. > > That's an interesting idea, but please use the former signature, not > the latter. Why? The varargs signature makes it less convenient (and less efficient!) to pre-calculate the list of types. It also makes it harder to implement this in PyObject_IsInstance(), so that C code can use this convenience. Finally, if I already know the meaning of isinstance(x, y), then when I encounter isinstance(x, (y, z)) for the first time, it's very easy to guess the meaning. The meaning of isinstance(x, y, z) is much more murky: z could be an optional argument specifying some other modification of the basic isinstance(). > And what would it return? It needs to return a true value on success, > but maybe instead of returning 1, it might be more useful to return > the type argument that matched, e.g.: > > >>> isinstance('', str, unicode) > <type 'str'> > >>> isinstance(u'', str, unicode) > <type 'unicode'> > >>> isinstance((), list, dictionary, tuple) > <type 'tuple'> > >>> isinstance(7, list, dictionary, tuple) > 0 Here I agree with Fred: too much hackery combined in one function. And what's the use case? --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4