Python 判断一个对象是不是类字符串

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 + ''

 

你可能感兴趣的:(python,String-like)