python数据类型判断type与isinstance的区别实例解析

 更新时间:2017年10月31日 08:37:47   投稿:mengwei  
这篇文章主要介绍了python数据类型判断type与isinstance的区别实例解析,具有一定参考价值,需要的朋友可以了解下。

在项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。
这样做不但便于调试,而且增加健壮性。因为客户端是可以作弊的,不要轻易相信客户端传过来的参数。

验证类型用type函数,非常好用,比如

>>type('foo') == str
True
>>type(2.3) in (int,float)
True

既然有了type()来判断类型,为什么还有isinstance()呢?

一个明显的区别是在判断子类。

type()不会认为子类是一种父类类型。

isinstance()会认为子类是一种父类类型。

千言不如一码。

class Foo(object):
  pass
  
class Bar(Foo):
  pass
  
print type(Foo()) == Foo
print type(Bar()) == Foo
print isinstance(Bar(),Foo)
  
class Foo(object):
  pass
  
class Bar(Foo):
  pass
  
print type(Foo()) == Foo
print type(Bar()) == Foo
print isinstance(Bar(),Foo)
输出
True
False
True

需要注意的是,旧式类跟新式类的type()结果是不一样的。旧式类都是<type 'instance'>。

class A:
  pass
class B:
  pass
class C(object):
  pass
print 'old style class',type(A())
print 'old style class',type(B())
print 'new style class',type(C())
print type(A()) == type(B())
class A:
  pass
class B:
  pass
class C(object):
  pass
print 'old style class',type(A())
print 'old style class',type(B())
print 'new style class',type(C())
print type(A()) == type(B())
输出
old style class <type 'instance'>
old style class <type 'instance'>
new style class <class '__main__.C'>
True

不存在说isinstance比type更好。只有哪个更适合需求。

总结

以上就是本文关于python数据类型判断type与isinstance的区别实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python编程之黑板上排列组合,你舍得解开吗浅谈Python由__dict__和dir()引发的一些思考等,有什么问题可以留言,大家一起交流讨论。

相关文章

  • numpy ndarray 取出满足特定条件的某些行实例

    numpy ndarray 取出满足特定条件的某些行实例

    今天小编就为大家分享一篇numpy ndarray 取出满足特定条件的某些行实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas 按照特定顺序输出的实现代码

    pandas 按照特定顺序输出的实现代码

    这篇文章主要介绍了pandas 按照特定顺序输出的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • Python编程之微信推送模板消息功能示例

    Python编程之微信推送模板消息功能示例

    这篇文章主要介绍了Python编程之微信推送模板消息功能,结合实例形式分析了Python微信推送消息接口的调用相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Node.js 和 Python之间该选择哪个?

    Node.js 和 Python之间该选择哪个?

    这篇文章主要介绍了Node.js 和 Python之间的优劣,并得出结论,希望能为你在项目选择哪种技术时提供一些帮助。感兴趣的朋友可以了解下
    2020-08-08
  • Python3实现网页内容转换成PDF文档和图片

    Python3实现网页内容转换成PDF文档和图片

    pdfkit是把 HTML+CSS 格式的文件转换成 PDF 的一种工具,它是 wkhtmltopdf 这个工具包的 python 封装。本文将利用pdfkit实现网页内容转换成PDF文档和图片效果,感兴趣的可以学习一下
    2022-06-06
  • pandas初学者容易犯的六个错误总结

    pandas初学者容易犯的六个错误总结

    Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建,Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具,这篇文章主要给大家介绍了总结介绍了pandas初学者容易犯的六个错误,需要的朋友可以参考下
    2021-10-10
  • Python NumPy教程之数据类型对象详解

    Python NumPy教程之数据类型对象详解

    每个 ndarray 都有一个关联的数据类型 (dtype) 对象。这个数据类型对象(dtype)告诉我们数组的布局。本文将通过示例详细讲讲NumPy的数据类型对象,需要的可以参考一下
    2022-08-08
  • 利用Python编写简易的录制屏幕小工具

    利用Python编写简易的录制屏幕小工具

    这篇文章主要为大家详细介绍了如何利用Python语言编写一个简易的录制屏幕小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-08-08
  • python多线程的线程如何安全实现

    python多线程的线程如何安全实现

    在本篇文章里小编给大家整理了一篇关于python多线程的线程如何安全实现的内容,有兴趣的朋友们可以学习参考下。
    2021-08-08
  • python中%格式表达式实例用法

    python中%格式表达式实例用法

    在本篇文章里小编给大家整理的是一篇关于python中%格式表达式实例用法的相关内容,有兴趣的朋友们可以跟着学习下。
    2021-06-06

最新评论