一、Python isinstance函数
描述:isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。
isinstance()与type()区别:
- type()不会认为子类是一种父类类型,不考虑继承关系。
- isinstance()会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用isinstance()
语法:以下是isinstance方法的语法:
isinstance(object,classinfo)
参数:
- object --实例duixiang。
- classinfo --可以是直接或间接类名、基本类型或者由他们组成的元祖。
返回值:如果对象的类型与参数二的类型(classinfo)相同则返回True,否则返回False。
实例:
以下展示了使用instance函数的实例:
1 >>>a = 2 2 >>>isinstance(a, int) 3 True 4 5 >>>isinstance(a, str) 6 False 7 8 >>>isinstance(a,(str, int,list)) #是元祖中的一个返回True 9 True
输入:
>>>str = 'hello' >>>isinstance(a, str)
报错信息:TypeError: isinstance() arg 2 must be a type or tuple of types
出错产生的原因是因为我们在练习代码的时候对str进行的赋值,导致了hello这个字符串比较的时候报错
解决办法:重启IDLE,不要对str类型进行赋值,问题解决
二、python2 cmp()函数
描述:cmp()函数用于比较2个对象,如果x<y返回-1,如果x=y返回0,如果x>y返回1
语法:以下是cmp()方法的语法
cmp(x,y)
参数:
- x --数值表达式
- y --数值表达式
返回值:如果x<y返回-1,如果x=y返回0,如果x>y返回1
实例:
以下展示了使用cmp()函数的实例:
>>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> cmp(a, b)
在python3中无法使用cmp()函数,否则报以下错误:
下面讲解在python3中使用operator模块实现同样的功能。
三、python3 operator模块
描述:python3中使用operator模块进行字符串、数字两个变量的大小比较;在使用operator模块时需要先导入该模块,使用命令import operator来进行导入。
语法:
operator.eq(x,y)
operator.ne(x,y)
operator.lt(x,y)
参数:
eq(x,y) --相等判断
ne(x,y) --不等判断
lt(x,y) --大小判断
常用对照速查表: