`

Python Cookbook 1.3 测试一个对象是否是字符串

阅读更多
问题:
需要判断一个对象,或者方法的一个参数,看它们是否是字符串.

解决方法:
判断一个对象是否是字符串或者unicode串的最简单有效的办法是使用isinstance和basestring

def isAString(anobj):
    return isinstance(anobj, basestring)

一般的说,判断一个对象是否是字符串,最容易想到的方法是:

def isString(str):
    return type(str) is type('')

这样有一些缺点:无法判断unicode字符串,或者用户从basestring继承下来的字符串类型.

当然,上面的算法在有些情况下也会失效:如Python类库中的UserString
那样,可以使用下面的算法:

def isStringLike(str):
    try: str + ''
    except: return False
    else: return True

这样的算法会降低方法的效率,但能适应更多的情况.

相关说明:

class basestring(object)
| Type basestring cannot be instantiated; it is the base for str and unicode.
|
| Data and other attributes defined here:
|
| __new__ = <built-in method __new__ of type object at 0x8147420>
|      T.__new__(S, ...) -> a new object with type S, a subtype of T

isinstance(...)
    isinstance(object, class-or-type-or-tuple) -> bool
   
    Return whether an object is an instance of a class or of a subclass thereof.
    With a type as second argument, return whether that is the object's type.
    The form using a tuple, isinstance(x, (A, B, ...)), is a shortcut for
    isinstance(x, A) or isinstance(x, B) or ... (etc.).

class type(object)
| type(object) -> the object's type
| type(name, bases, dict) -> a new type 

分享到:
评论

相关推荐

    Python Cookbook

    12. **3.12 测试字符串是否表示整数**:提供了测试字符串是否可以被解析为整数的方法。 13. **3.13 扩展和压缩制表符**:解释了如何处理字符串中的制表符。 14. **3.14 替换多个模式**:使用正则表达式一次性替换...

    Python Cookbook, 2nd Edition pdf

    - **1.3 判断对象是否像字符串**:提供了一种方法来判断一个对象是否可以像字符串那样进行操作。 - **1.4 对齐字符串**:演示了如何对齐字符串,使其看起来更加整洁美观。 - **1.5 去除字符串两端的空白**:教授...

    《Python Cookbook》第三版繁體中文

    2.14 合并拼接字符串:使用各种方法将多个字符串合并为一个。 2.15 字符串中插入变量:在字符串中插入变量或表达式。 2.16 以指定列宽格式化字符串:使用str.format()方法或旧式的%格式化进行格式化输出。 2.17 在...

    《Python Cookbook》第三版中文

    2.2 字符串开头或结尾匹配:说明了如何检查字符串是否以某个特定的子串开头或结尾。 2.3 用Shell通配符匹配字符串:讲解了如何使用Shell通配符规则进行字符串匹配。 2.4 字符串匹配和搜索:提供了基础的字符串搜索...

    Python Cookbook 第三版中文v3.0.0

    Python Cookbook 第三版中文v3.0.0是 Python 编程的实践指南,提供了丰富的实践经验和编程技巧,涵盖了数据结构、字符串和文本、文件和目录、持久化数据、网络编程、进程和线程、Testing 和 Debugging 等多个方面。...

    python cookbook

    - **知识点**: 演示了如何检查一个字符串是否包含另一个字符串或一组字符。 - **应用场景**: 在验证用户输入或过滤文本时非常有用。 - **Recipe 1.9 Simplifying Usage of Strings' translate Method**(简化字符...

    python cookbook 3th 英文版

    1.2 从任意长度的可迭代对象中解包元素,展示了Python的强大解包能力,允许从一个可迭代对象中提取任意数量的元素。 1.3 保存最后N项的功能,对于需要追踪最近事件或数据的场景非常有用。 1.4 找出最大或最小N项的...

    Python cookbook.pdf

    为了判断一个对象是否为字符串,可以使用`isinstance`函数: ```python if isinstance(obj, str): # it's a string ``` 这种方式简单直观。 **3.3 Aligning Strings(对齐字符串)** 为了实现文本的左对齐、右...

    Python Cookbook 第3版 中文版

    - **知识点**:介绍了如何判断字符串是否以特定字符开头或结尾,这对于文本处理非常有用。 - **2.3 用Shell通配符匹配字符串** - **知识点**:讨论了如何使用类似于Shell中的通配符来匹配字符串,这对于文件名或...

    《Python+Cookbook》第三版中文v3.0.0.pdf 熊熊

    第一章:数据结构和算法 13 ...2.20 字节字符串上的字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . 85 第三章:数字日期和时间 88 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    Regular Expressions Cookbook

    - **字符集**:使用方括号`[]`来指定一组字符中的任意一个,如`[abc]`匹配"a"、"b"或"c"。 - **范围**:也可以使用范围指定,如`[a-z]`匹配任何小写字母。 - **排除**:通过添加"!"字符在方括号内,如`[^abc]`匹配...

Global site tag (gtag.js) - Google Analytics