一、issubclass函数
用来检测一个类是否是另一个 类的子类。应用说明:一旦检测到一个类是另一个类的子类后,实际上就可以调用父类中所有的方法和属性。举例:issubclass(Teacher,Person)说明:第一个参数是子类的类名,第二个参数是父类的类名这个函数第一个参数的类名是第二个参数的 类名的子类,那么结果返回true,否则返回false
二、使用魔法属性检测父类
通过类名的魔法属性__bases__
使用魔法属性输出后的格式是这样的:(<class '__main__.Person'>,)
三、检测对象
使用isinstance函数,它有两个参数,第一参数是某个对象,第二个参数是某个类的类名。结果返回第一个参数的对象是否是第二个参数的类名实例化而来的。如果确实是实例化的对象就返回true,否则返回false。这里要注意:第一个参数的实例对象如果它的类有父级继承关系,那么第二个参数中的类名如果是父类的类名,结果也会返回true。
举例如下:
isinstance(teach,Person)
四、总结强调
1.掌握issubclass函数检测一个子类是否是父类的子类。
2.掌握__base__魔法属性来查看所继承的父类
3.掌握isinstance函数检测一个对象是否是另一个类实例化而来的对象。
本节源代码:
class Person: def setAge(self,age): self.age=age def getAge(self): return self.age def sayHello(self): print("hello,老刘") class Teacher(Person): def setMajor(self,major): self.major=major def getMajor(self): return self.major class Student: def sayWhat(self): print("我是学生类") print("检测一个类是否是另一个类的子类",issubclass(Teacher,Person)) print("使用魔法方法查父类",Teacher.__bases__) #检测类的对象是否是某个类实例化而来的 teach=Teacher() stu=Student() print(isinstance(teach,Person))