Python的内置函数之isinstance( ) 和 issubclass( )

isinstance()函数

描述:

    Python 中的isinstance函数,isinstance是Python中的一个内建函数。是用来判断一个对象的变量类型。

语法:

以下是 isinstance() 方法的语法:

    isinstance(object, classinfo)

参数:

  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者有它们组成的元组。

返回值:

      官方定义:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。

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

>>>a = 2

>>> isinstance (a,int)True

>>> isinstance (a,str)False

>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True

True

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



issubclass( )函数

描述

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

语法

以下是 issubclass() 方法的语法:

issubclass(class, classinfo)

参数

  • class -- 类。
  • classinfo -- 类。

返回值

如果 class 是 classinfo 的子类返回 True,否则返回 False。

实例

以下展示了使用函数的实例:

class A:   
pass
class B(A):    
pass    
print(issubclass(B,A))    # 返回 True


isinstance和issubclassPython中用于判断对象和类之间关系的两个内置函数。 isinstance函数用于判断一个对象是否是一个类的实例,可以用来检查对象的类型。如果给定的对象是指定类的实例,那么isinstance返回True,否则返回False。例如,使用isinstance(obj, Foo)可以判断obj是否是Foo类的实例,如果是,则返回True。 issubclass函数用于判断一个类是否是另一个类的子类,可以用来检查类之间的继承关系。如果给定的类是指定类的子类,那么issubclass返回True,否则返回False。例如,使用issubclass(Bar, Foo)可以判断Bar类是否是Foo类的子类,如果是,则返回True。 这两个函数的区别在于isinstance函数判断的是对象和类之间的关系,而issubclass函数判断的是类和类之间的关系。isinstance函数可以判断一个对象是否是某个类的实例,而issubclass函数只能判断类和类之间是否有继承关系。 综上所述,isinstance和issubclassPython中用于判断对象和类之间关系的两个函数,isinstance函数用于判断对象是否是某个类的实例,而issubclass函数用于判断类是否是另一个类的子类。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [isinstance和issubclass](https://blog.csdn.net/qq_55752792/article/details/122013851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [面向对象(五)--isinstance与issubclass方法、反射、内置方法(部分)、异常处理...](https://blog.csdn.net/weixin_30843605/article/details/94765778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值