对于普通的ACSII(iso)字符串和Unicode字符串,可采用以下方法鉴别:
def isAString(anobj):
return isinstance(anobj,basestring)
原理:因为str和Unicode字符串都是从基类basestring继承而来的,(basestring内建基类,为空,类似于object)
但是对于标准库中的UserString,此方法不适用,可采用以下方法鉴别:
def isStringLike(anobj):
try: anobj.lower() + anobj + ''
except: return False
else:return True
此方法比较全面,但是效率较低