在 Python 中检查类型的规范方法是什么?

发布于 2022-03-22 23:30:34

检查给定对象是否属于给定类型的最佳方法是什么?如何检查对象是否继承自给定类型?

假设我有一个对象o。我如何检查它是否是一个str

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2022-03-22
    为面试而生,有面试问题,就找面试哥。

    要检查是否o是 的实例str或任何子类str,请使用isinstance(这将是“规范”方式):

    if isinstance(o, str):
    

    检查类型o是否准确str(排除子类):

    if type(o) is str:
    

    以下方法也有效,并且在某些情况下可能有用:

    if issubclass(type(o), str):
    

    有关相关信息,请参阅Python 库参考中的内置函数

    还有一点需要注意:在这种情况下,如果您使用的是 Python 2,您可能实际上想要使用:

    if isinstance(o, basestring):
    

    因为这也会捕获 Unicode 字符串(unicode不是 的子类str;两者都是strunicode子类basestring)。请注意,basestring在 Python 3 中不再存在字符串 ( ) 和二进制数据 ( )的严格分隔strbytes

    或者,isinstance接受一个类的元组。True如果o是以下任何一个子类的实例,这将返回(str, unicode)

    if isinstance(o, (str, unicode)):
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看