Python检测一个对象是否为字符串类的方法


Posted in Python onMay 21, 2015

目的

测试一个对象是否是字符串

方法

Python的字符串的基类是basestring,包括了str和unicode类型。一般可以采用以下方法:

def isAString(anobj):

return isinstance(anobj,basestring)

不过以上方法对于UserString类的实例,无能无力。

In [30]: b=UserString.UserString('abc')
In [31]: isAString(b)

Out[31]: False
In [32]: type(b)

Out[32]: <class 'UserString.UserString'>

Python中常用的鸭子判断法:如果它走路像鸭子,叫声像鸭子,就可以认为它是鸭子了。

def isStringLike(anobj):
    try:
        anobj.lower() + anobj + ' '
    except:
        return False
    else:
        return True

 测试结果如下:

>>> import UserString

>>> b=UserString.UserString('abc')

>>> isStringLike(b)

True

>>>

关于风格

根据自己的语气去执行任务,在此过程中检测并处理由于不匹配产生的所有错误和异常。这种处理方式称为:

EAFP:It's easier to ask forgiveness than permission.

try/except是保证该风格的关键工具。

八卦一下,关于UserString类

对于2.X版本:Python文档中提到,如果不涉及到2.2以前的版本,请考虑直接使用str类型来代替UserString类型。

对于3.X版本:该模块已经移到collection模块中。

该类主要有两种方法:

class UserString.UserString([sequence])

具体使用前面已经举例,注意可以使用str()转化为str类型

class UserString.MutableString([sequence])

字符串也可以变哦!Look here:
a=UserString.MutableString('abc')

a[0]='c'
In [10]: a

Out[10]: 'cbc'

 
Python文档上有行黑体字,原来已经是弃用的方法,3.0就没有了:
Deprecated since version 2.6: The MutableString class has been removed in Python 3.0.
Python 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
python 计算文件的md5值实例
Jan 13 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
Python3 处理JSON的实例详解
Oct 29 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
python 重定向获取真实url的方法
May 11 Python
10个Python小技巧你值得拥有
Sep 29 Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 Python
python多线程同步实例教程
Aug 11 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
python+requests实现接口测试的完整步骤
Oct 27 Python
在Python中操作列表之List.pop()方法的使用
May 21 #Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 #Python
Python中每次处理一个字符的5种方法
May 21 #Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 #Python
Python判断文件和文件夹是否存在的方法
May 21 #Python
python使用wxpython开发简单记事本的方法
May 20 #Python
Python使用shelve模块实现简单数据存储的方法
May 20 #Python
You might like
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python使用udp实现聊天器功能
2018/12/10 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
护士检查书
2014/01/17 职场文书
外贸专业求职信
2014/03/09 职场文书
企业新年寄语
2014/04/04 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
体育教师教学随笔
2015/08/15 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书