python isinstance函数(21)

1. 简介

isinstance() 函数是 python 中的一个内置函数,主要用于检测变量类型,返回值是bool值 ,在python内置函数中,与该函数相似的还有另外一个内置函数  type()。

2.语法

isinstance(object,classinfo)

参数:

object : 实例对象。

classinfo : 可以是直接或者间接类名、基本类型或者由它们组成的元组。

返回值:如果对象的类型与classinfo类型相同则返回 True,否则返回 False。

a = 2
isinstance(a,int)      # 结果返回 True
isinstance(a,str)      # 结果返回 False
isinstance(a,(str,int,list))      # 是元组中的一个,结果返回 True

3.isinstance()与type()的区别

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

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

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com

@File:python_isinstance.py
@Time:2019/11/22 21:25

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""

class Animation:
    pass

class Dog(Animation):
    pass

print(isinstance(Animation(), Animation))    # returns True
print(type(Animation()) == Animation)        # returns True
print(isinstance(Dog(), Animation))          # returns True
print(type(Dog()) == Animation)              # returns False

输出结果:

True
True
True
False

代码分析:

创建一个Animation对象,再创建一个继承Animation对象的Dog对象,使用 isinstance() 和 type() 来比较 Animation() 和 Animation时,由于它们的类型都是一样的,所以都返回了 True。

而Dog对象继承于Animation对象,在使用isinstance()函数来比较 Dog() 和 Animation时,由于考虑了继承关系,所以返回了 True,使用 type() 函数来比较 Dog() 和 Animation时,不会考虑 Dog() 继承自哪里,所以返回了 False。

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

猜你喜欢:

1.python map函数

2.python列表推导式

3.python return逻辑运算符

4.python模块import

转载请注明:猿说Python » python isinstance函数

技术交流、商务合作请直接联系博主

扫码或搜索:猿说python

猿说python

微信公众号 扫一扫关注

原文地址:https://www.cnblogs.com/shuopython/p/12113207.html

时间: 2024-08-11 09:20:52

python isinstance函数(21)的相关文章

Python isinstance函数 raise

今天看了下廖雪峰的网站,发现有个isinstance函数可以对参数类型进行判断: 对参数类型做检查,只允许整数和浮点数类型的参数.数据类型检查可以用内置函数isinstance实现: def my_abs(x):     if not isinstance(x, (int, float)):         raise TypeError('bad operand type')     if x >= 0:         return x     else:         return -x

Python isinstance() 函数 Python 内置函数 Python 内置函数

描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系. isinstance() 会认为子类是一种父类类型,考虑继承关系. 如果要判断两个类型是否相同推荐使用 isinstance(). 语法 以下是 isinstance() 方法的语法: isinstance(object, classinfo) 参数 object -- 实例对象. class

python isinstance()函数和type()函数

一.type()用法 描述: python的 type 函数有两个用法,当只有一个参数的时候,返回对象的类型.当有三个参数的时候返回一个类对象. 语法: 一个参数:type(object) 三个参数:type(name,bases,dict) 用法: 一个参数时,type()返回一个对象的数据类型 1 >>> type(1) 2 <class 'int'> 3 >>> type('alex') 4 <class 'str'> 5 >>

python isinstance()函数

参考: http://www.runoob.com/python/python-func-isinstance.html isinstance 用来判断一个对象是否是一个已知的类型. 用法: isinstance(object, classinfo) 参数: object--实例对象, classinfo--可以是直接类名,基本类型或者由它们组成的元组 >>>a = 2 >>> isinstance (a,int) True >>> isinstanc

python isinstance函数

isinstance是Python的一个内建函数 语法: 1 isinstance(object,classinfo) 如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例,返回True.如果object不是一个给定类型的对象,则返回结果是False 如果classinfo不表示一个类(类型对象),那么它要么是一个类的元组,或者递归地包含这样的(由数据类型构成的)元组,其它的序列类型是不被允许的. 如果classinfo不是一种数据类型或者由数据

python issubclass 和 isinstance函数

Python issubclass() 函数 issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类. 语法: issubclass(class, classinfo) 参数 class -- 类. classinfo -- 类. 返回值 如果 class 是 classinfo 的子类返回 True,否则返回 False. 例子: #!/usr/bin/python # -*- coding: UTF-8 -*- class A: pass clas

python basestring函数(33)

一.basestring函数介绍 该函数是 str 和 unicode 的父类,是抽象类,因此不能被调用和实例化,但可以被用来判断一个对象是否为 str 或者 unicode 的实例,语法如下: basestring() 注意:没有参数,如果想用来检查类型可以使用isinstance函数,使用方法如下: isinstance(obj, basestring) # 等价于 isinstance(obj, (str, unicode)) 二.basestring函数使用 # !usr/bin/env

python之函数用法isinstance()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isinstance() #isinstance() #说明:返回一个布尔值,判断数据类型 ''' isinstance(...) isinstance(object, class-or-type-or-tuple) -> bool object:一个对象 class-or-type-or-tuple:类/基本类型/元组,可以只传一个数据类型,也可以同时传递多个数据类型 bool:返

python进阶一(函数式编程)【2-1 python把函数作为参数】

2-1 python把函数作为参数 1 def add(x, y, f): 2 return f(x) + f(y) 如果传入abs作为参数f的值: 1 add(-5, 9, abs) 根据函数的定义,函数执行的代码实际上是: 1 abs(-5) + abs(9) 由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值. 任务 利用add(x,y,f)函数,计算: 1 import math 2 3 def add(x , y , f): 4 return f