python判断是否为类的实例,是否为子类
文章目录:
首先定义两个类,一个父类,一个子类,这里并不定义类体内容,仅举例说明
class Parent:
pass
class Son(Parent):
pass
一、获取类实例的名称
格式: 实例名.__class__.__name__
>>> class Parent:
... pass
...
>>> class Son(Parent):
... pass
...
>>> par = Parent()
>>> par.__class__.__name__
'Parent'
>>> son = Son()
>>> son.__class__.__name__
'Son'
>>>
二、判断一个类是否是另外一个类的实例
使用函数:issubclass()
, 如果是父类的子类,则返回布尔值 True
格式:issubclass(参数1, 参数2)
- 参数1:子类的名字
- 参数2:父类的名字
>>> class Parent:
... pass
...
>>> class Son(Parent):
... pass
...
>>> issubclass(Son, Parent)
True
>>> type(issubclass(Son, Parent))
<class 'bool'>
三、判断某个实例是否是指定类的实例
使用函数:isinstance()
格式:isinstance(参数1, 参数2)
- 参数1:实例化的对象名
- 参数2:类名
>>> class Parent:
... pass
...
>>> class Son(Parent):
... pass
...
>>> par = Parent()
>>> par.__class__.__name__
'Parent'
>>> son = Son()
>>> son.__class__.__name__
'Son'
>>> isinstance(par, Parent)
True
>>> isinstance(son, Son)
True
>>> isinstance(son, Parent) # 子类实例化的对象,同样也是父类的实例化对象,这就是继承的灵动之处
True
>>> isinstance(par, Son)
False
>>>
从上面可以isinstance(son, Parent)
返回的也是True值,子类实例化的对象,同样也是父类的实例化对象,这就是继承的灵动之处,所以子类可以调用父类的所有方法和属性。
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠