如何检查Python对象是否为字符串(常规或Unicode)?
当前回答
if type(varA) == str or type(varB) == str:
print 'string involved'
从 EDX -在线课程 MITx: 6.00.1x使用Python的计算机科学和编程介绍
其他回答
isinstance(your_object, basestring)
如果对象确实是字符串类型,则为True。'str'是保留字。
我的道歉, 正确的答案是使用'basestring'而不是'str',以便它也包括unicode字符串-正如上面其他响应者之一所指出的那样。
我发现这句话更夸张:
if type(aObject) is str:
#do your stuff here
pass
由于类型对象是单例的,is可以用来比较对象和STR类型
你可以通过连接一个空字符串来测试它:
def is_string(s):
try:
s += ''
except:
return False
return True
编辑:
更正我的回答后的评论指出,这失败与列表
def is_string(s):
return isinstance(s, basestring)
if type(varA) == str or type(varB) == str:
print 'string involved'
从 EDX -在线课程 MITx: 6.00.1x使用Python的计算机科学和编程介绍
对于类似字符串的良好鸭子类型方法,它具有与Python 2同时使用的好处。X和3.x:
def is_string(obj):
try:
obj + ''
return True
except TypeError:
return False
Wisefish在切换到isinstance方法之前与duck-typing很接近,只是+=对于列表的含义与+不同。
推荐文章
- 如何在交互式Python中查看整个命令历史?
- 我如何检查如果一个变量是JavaScript字符串?
- 如何显示有两个小数点后的浮点数?
- 如何用OpenCV2.0和Python2.6调整图像大小
- IEEE 754浮点数不能精确表示的第一个整数是哪一个?
- 在每个列表元素上调用int()函数?
- 在Lua中拆分字符串?
- 当使用代码存储库时,如何引用资源的相对路径
- c++中size_t和int的区别是什么?
- 如何在Flask-SQLAlchemy中按id删除记录
- 在Python中插入列表的第一个位置
- Python Pandas只合并某些列
- 如何在一行中连接两个集而不使用“|”
- 从字符串中移除前缀
- 代码结束时发出警报