知识回顾:
1.类的代码块。
2.类的私有化。
在python中,我们类中其实是没有绝对的私有的。本质上python语言中所有的类中的属性和方法都是公开的。
本节知识视频教程
文字教程开始:
补充一下
好的开发习惯,在定义类名字的时候,我们往往首字母大写。
如果说一个名称中有多个单词的时候,我们往往将各个单词的首字母大写。
一、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))
相关文章: