如何确定Python对象是否为字符串?

2024-03-29 12:29:22 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

Python3

在Python 3.x中,basestring不再可用,因为str是唯一的字符串类型(具有Python 2.x的unicode语义)。

所以Python 3.x中的签入只是:

isinstance(obj_to_test, str)

接下来是官方转换工具的2to3:将basestring转换为str

要检查对象o是否为字符串类型的子类的字符串类型,请执行以下操作:

isinstance(o, basestring)

因为strunicode都是basestring的子类。

要检查o的类型是否正是str

type(o) is str

检查o是否是str的实例或str的任何子类:

isinstance(o, str)

如果将str替换为unicode,则上述方法也适用于Unicode字符串。

但是,您可能根本不需要执行显式类型检查。”鸭子打字“可能适合你的需要。见http://docs.python.org/glossary.html#term-duck-typing

另见What’s the canonical way to check for type in python?

Python2

对要测试的对象使用isinstance(obj, basestring)

Docs

相关问题 更多 >