学习笔记,仅供参考,有错必纠
文章目录
- 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