对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

在项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。

这样做不但便于调试,而且增加健壮性。因为客户端是可以作弊的,不要轻易相信客户端传过来的参数。

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

>>type('foo') == str

True

>>type(2.3) in (int,float)

True

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

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

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

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

# @param python数据类型判断type与isinstance的区别

# @author 编程之家 jb51.cc|jb51.cc

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

# End www.jb51.cc

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

# @param python数据类型判断type与isinstance的区别

# @author 编程之家 jb51.cc|jb51.cc

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

old style class

new style class

True

# End www.jb51.cc

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

python type判断_python判断type与isinstance的区别相关推荐

  1. python hasattr函数_python学习-type(),isinstance(),dir(),getattr(),setattr(),hasattr()

    isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系. isinstance() 会认为子类是一种父类类型,考虑继承关系. 如果要判断两个类型是 ...

  2. type在python的意思_python中type()是什么意思

    python中type()是什么意思 type()是一个内建的获取变量类型的函数. type()函数有两个用法,当只有一个参数的时候,返回对象的类型.当有三个参数的时候返回一个类对象. 语法:type ...

  3. python telnet 交互_Python判断telnet通不通的实例

    这个跟ping那个差不多,ping的那个脚本就是通过这个改了下,大体一致,不过telnet的不需要判断返回的字符串.快一些 这里具体需要telnet的ip是需要自己向定义好的数组中写的 我这里加了一个 ...

  4. python 创建类_python 用type()创建类

    type()可以查看一个类型,也可以查看变量的类型 class Hello1(object): def hello(self, name = 'world'): print('Hello, %s' % ...

  5. python合法的字符串_Python判断字符串是否为合法标示符操作

    这学期在学习编译原理,最近的上机作业就是做一个简单的词法分析器,在做的过程中,突然有个需求就是判断一个字符串是否为合法的标示符,因为我是用python语言做的,做的是Python的词法分析器,于是下面 ...

  6. python循环体结束标志_python判断循环体结束的方法

    python如何判断循环体结束? 相关推荐:<python视频> Python break语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循 ...

  7. python输出偶数_Python 判断奇数偶数的方法

    Python 判断奇数偶数的方法 以下实例用于判断一个数字是否为奇数或偶数: # -*- coding: UTF-8 -*- # Filename : test.py # Python 判断奇数偶数 ...

  8. python字符串不为空的判断_python判断是否为空字符串的方法

    python判断是否为空字符串的方法 发布时间:2020-09-02 11:30:18 来源:亿速云 阅读:95 作者:小新 这篇文章给大家分享的是有关python判断是否为空字符串的方法的内容.小编 ...

  9. python图像数独_Python判断有效的数独算法示例

    本文实例讲述了Python判断有效的数独算法.分享给大家供大家参考,具体如下: 一.题目 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 1. 数字 1-9 在 ...

  10. python中type用法_Python中type的用法

    (TOC)描述python类型的函数有两个用法,当只有一个参数,它将返回对象的类型.当有三个参数,返回一个类对象.语法类型(对象)类型(名称.基地.dict)使用一个参数类型(对象)返回一个对象的类型 ...

最新文章

  1. js new Date()不带时分秒时,时间变了 问题解决
  2. Bada学习-Privileged API
  3. 装逼的翻译,害死多少人,你同意吗?到底什么是非终止状态,终止状态
  4. LeetCode 680. 验证回文字符串 Ⅱ
  5. 第十四篇 元类编程(二)
  6. jira7.3.6添加导出excel的按钮
  7. linux开启mysql窗口_linux操作系统中如何查看是否开启了MySQL服务呢?
  8. 中标麒麟V6版本32位以及64位下载地址
  9. Java中的getBytes()方法详解
  10. Autorun风暴专杀工具
  11. 中考英语听说计算机考试成绩查询,中考英语听说考试成绩查询
  12. openfiler服务器打不开web管理页面
  13. html5源码 母亲节,母亲节H5:非常有创意的5款母亲节H5案例分享
  14. 调用Google翻译 语音接口
  15. 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 scre
  16. c语言hypot函数,hypot ( )【C语言库函数源代码】
  17. 第三方理财平台海银财富上市破发,IPO筹划两年募资规模缩水至3千万美元
  18. 乘法计算机公式,在word中乘法的函数公式计算公式
  19. 【微信小编】动态地图gif制作
  20. nginx配置和优化详解

热门文章

  1. samba配置问题一则及配置详解
  2. 嵌套查询(2020-3-25 )
  3. python 消息中间件_如何评价腾讯开源的消息中间件TubeMQ?
  4. linux使用中的问题 ---(Cannot find a valid baseurl for repo: base)
  5. mysql 行显示 g_MySQL行(记录)详细操作
  6. linux第五单元作业,第五单元《微型计算机系统》教案
  7. 锐界机器人_每72秒就有一辆锐界驶下生产线
  8. 试验笔记 - 使用7-ZIP压缩来减小APK安装包体积
  9. Python基础学习九 单元测试
  10. struts1(一)流程分析