1.使用内建方法
def isAString(var):
return isinstance(var, basestring)
示例:
>>> def isAString(var):
... return isinstance(var, basestring)
...
>>> isAString('a')
True
>>> isAString(1)
False
但是这个方法不能测试UserString, 如果需要支持UserString, 可以直接检查这个对象能不能执行真正的字符串的操作.
2.使用duck typing 方法
def isStringLike(var):
try: var + ''
except: return False
else: return True
示例:
>>> def isStringLike(var):
... try: var + ''
... except: return False
... else: return True
...
>>> isStringLike('a')
True
>>> isStringLike(1)
False
适用于UserString,str,unicode 以及其他的类字符串.
这就是所谓的鸭子判断法: 如果它走路像鸭子, 叫起来也像鸭子, 那对我们(的需求)来说它就是鸭子.
当然我们可以检查更详细的鸭子特征:
try: anobj.lower( ) + anobj + ''