您的位置:首页 > 编程语言 > Python开发

python 内建函数isinstance的用法以及与type的区别

2018-07-12 21:48 656 查看
isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo)   如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。 如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。 如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。

作用:来判断一个对象是否是一个已知的类型。 

其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。

若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。

  举例: >>> isinstance(1, int) True >>> isinstance(1.0, float) True  >>> a = 4
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list))
True >>>isinstance(a,dict)  判断对象a是否为字典,如果为真,会打印True,如为假,打印False。  

type()与isinstance()的区别:

共同点:两者都可以判断对象类型 

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。


不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。

例如:

class A:
pass
class B(A):
pass

isinstance(A(), A)  # returns True
type(A()) == A      # returns True

isinstance(B(), A)    # returns True
type(B()) == A        # returns False
  • 综上,推荐使用 isinstance 判断对象类型。

  isalpha如果是字母,返回一个非零数;否则返回为0

isalnum如果是字母或数字,返回一个非零数;否则返回为0

isdigit如果是数字(0-9)返回一个非零数;否则返回为0   

 

#!/usr/bin/python # -*- coding: UTF-8 -*- str = "this2009";    # 字符中没有空格 print str.isalnum(); str = "this is string example....wow!!!"; print str.isalnum();

以上实例输出结果如下:

True
False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: