Check if input is a list/tuple of strings or a single string
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
isinstance
is an option:
In [2]: isinstance("a", str)Out[2]: TrueIn [3]: isinstance([], str)Out[3]: FalseIn [4]: isinstance([], list)Out[4]: TrueIn [5]: isinstance("", list)Out[5]: False
Type checking:
def func(arg): if not isinstance(arg, (list, tuple)): arg = [arg] # processfunc('abc')func(['abc', '123'])
Varargs:
def func(*arg): # processfunc('abc')func('abc', '123')func(*['abc', '123'])