["python","typechecking","python-2.5"]
Check if input is a list/tuple of strings or a single string

I've a method that I want to be able to accept either a single string (a path, but not necessarily one that exists on the machine running the code) or a list/tuple of strings. Given that strings act as lists of characters, how can I tell which kind the method has received? I'd like to be able to accept either standard or unicode strings for a single entry, and either lists or tuples for multiple, so isinstance doesn't seem to be the answer unless I'm missing a clever trick with it (like taking advantage of common ancestor classes?). Python version is 2.5
You can check if a variable is a string or unicode string with Python 3: isinstance(some_object, str) Python 2: isinstance(some_object, basestring) This will return True for both strings and unicode strings As you are using python 2.5, you could do something like this: if isinstance(some_object, basestring): ... elif all(isinstance(item, basestring) for item in some_object): # check iterable for stringness of all items. Will raise TypeError if some_object is not iterable ... else: raise TypeError # or something along that line Stringness is probably not a word, but I hope you get the idea