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

作者:junjie 时间:2022-11-02 15:25:24 

目的

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

方法

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,检测,对象,字符串
0
投稿

猜你喜欢

  • django数据库报错解决汇总:django.db.utils.OperationalError 1045,1049,2003

    2024-01-28 00:19:57
  • python+matplotlib绘制简单的海豚(顶点和节点的操作)

    2023-11-14 11:10:27
  • Flask蓝图学习教程

    2023-03-02 04:19:15
  • Python实现堆排序的方法详解

    2023-12-02 07:43:20
  • Python使用StringIO和BytesIO读写内存数据

    2022-06-15 02:45:45
  • 浅谈Python使用Bottle来提供一个简单的web服务

    2021-08-30 13:03:19
  • javascript在myeclipse中报错的解决方法

    2024-04-22 22:41:55
  • Mysql InnoDB多版本并发控制MVCC详解

    2024-01-23 16:46:25
  • MySQL旧版本升级为新版本

    2009-02-26 15:44:00
  • oracle数据库排序后如何获取第一条数据

    2024-01-18 11:44:01
  • 如何基于Python Matplotlib实现网格动画

    2023-07-31 04:17:37
  • MySQL定时备份数据库操作示例

    2024-01-13 09:34:24
  • 详解python中递归函数

    2022-04-17 19:40:55
  • Python PyInstaller库基本使用方法分析

    2022-03-19 16:29:46
  • JavaScript中创建原子的方法总结

    2023-06-29 12:22:14
  • PyQt5+requests实现车票查询工具

    2023-11-01 02:12:25
  • 对Pytorch 中的contiguous理解说明

    2022-04-14 08:34:47
  • 认识Javascript数组

    2009-08-27 15:26:00
  • 编写兼容IE和FireFox的脚本

    2009-05-19 12:01:00
  • Python函数中的作用域规则详解

    2023-02-14 04:32:28
  • asp之家 网络编程 m.aspxhome.com