类型判断type与isinstance的区别
2020-06-28 本文已影响0人
mutang
类型判断type与isinstance的区别
-
type()函数:
语法
type(object) type(name, bases, dict)
参数
- name -- 类的名称。
- bases -- 基类的元组。
- dict -- 字典,类内定义的命名空间变量。
返回值
一个参数返回对象类型, 三个参数,返回新的类型对象。
判断类型的两种方式
- type(x) is classinfo :
type(1) is int #true
- type(x) == classinfo :
type(1) == int #true
-
isinstance()函数:
语法
isinstance(object, classinfo)
参数
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
-
isinstance() 与 type() 区别:
-
type() 不会认为子类是一种父类类型,不考虑继承关系。
-
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
-
-
用法:
-
if
-
try catch
-
assert
拓展assert:
- 一般的用法是:
assert condition
用来让程序测试这个condition,如果condition为false,那么raise一个AssertionError出来。逻辑上等同于:
if not condition: raise AssertionError()
- 如何为assert断言语句添加异常参数
assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]