我试图通过传递一个可能是字符串或字符串列表的参数来重载我的函数。以字符串列表结尾的最简单方法是什么?
>>> foo
'bar'
>>> bar
['foo', 'bar']
def myfunc(arg):
listarg = list()
listarg.extend(arg)
print listarg
>>> myfunc(bar)
['foo', 'bar']
>>> myfunc(foo)
['b', 'a', 'r']
当我通过 foo 我想看['bar']
.
我一直在使用isinstance(arg, str) or isinstance(arg, unicode)
,isinstance(arg, collections.Iterable)
但对它们并不感到兴奋,因为后者不起作用,而前者,我不能只是加入一个列表或其他东西 - 我虽然str
会这样做,但后来unicode
出现了,现在担心可能会有更多的测试对象。