0
点赞
收藏
分享

微信扫一扫

python学习高级篇(part4)--内置函数issubclass和isinstance

学习笔记,仅供参考,有错必纠


文章目录

  • ​​issubclass()函数​​
  • ​​举个例子​​
  • ​​isinstance()函数​​
  • ​​举个例子​​



issubclass()函数



内置函数​​issubclass()​​用于判断类对象类对象之间的关系;内置函数​​isinstance()​​用于判断实例对象类对象之间的关系。



内置函数​​issubclass()​​接收两个实参:

  • 第一个实参是类对象
  • 第二个实参是类对象或由类对象组成的元组

当第二个实参是类对象时,如果第一个实参是第二个实参的子类,那么返回​​True​​​;
当第二个实参是类对象组成的元组时,如果第一个实参是第二个实参中任意一个类对象的子类,返回​​​True​​。

举个例子

代码:

class A(object):
pass

class B(object):
pass

class C(object):
pass

class D(A):
pass

print(issubclass(D, A))
print(issubclass(D, B))

print(issubclass(D, (B, A, C)))
print(issubclass(D, (B, C)))

print(issubclass(bool, int))
print(issubclass(bool, str))

print(issubclass(bool, (str, int, dict)))
print(issubclass(bool, (str, list, dict)))

输出:

True
False
True
False
True
False
True
False



isinstance()函数



内置函数​​isinstance()​​接收两个实参:

  • 第一个实参是实例对象
  • 第二个实参是类对象或由类对象组成的元组


当第二个实参是类对象时,如果第一个实参是第二个实参的实例对象,或者第一个实参是第二个实参的子类的实例对象,那么返回​​True​​​;
当第二个实参是类对象组成的元组时,如果第一个实参是第二个实参中任意一个类对象或其子类的实例对象,那么返回​​​True​​;



举个例子



代码:

class A(object):
pass

class B(object):
pass

class C(object):
pass

class D(A):
pass

print(isinstance(D(), D))
print(isinstance(D(), A))

print(isinstance(D(), (D, B, C)))
print(isinstance(D(), (B, A, C)))

输出:

True
True
True
True

举报

相关推荐

0 条评论