文章目录
继承
定义
重用现有类的功能与概念,并在此基础上进行扩展。
优点
- 一种代码复用的方式。
- 以层次化的方式管理类。
缺点
耦合度高。
作用
隔离客户端代码与功能的实现方式。
适用性.
多个类在概念上是一致的,且需要进行统一的处理。
继承的方法
"""
继承--方法
"""
#多个子类在概念上一致的﹐所以就抽象出一个父类.
#多个子类的共性﹐可以提取到父类中.
#从设计角度讲∶先有子﹐再有父.
#从编码角度讲∶先有父,再有子.
class Person:
def say(self):
print("说话")
class Student(Person):
def study(self):
print("学习")
class Teacher(Person):
def teach(self):
print("讲课")
s01 = Student()
#子类对象可以调用子类,也可以调用父类成员.
s01.study()#学习
s01.say()#说话#父类成员
p01 = Person()
#父类对象只可以调用父类成员,不能调用子类成员
p01.say()
python内置函数
1.isinstance()
t01 = Teacher()
#python 内置函数
#1.判断对象是否属于一个类型
#"老师对象“是一个老师类型
print(isinstance(t01, Teacher))#True
#"老师对象“不是一个学生类型
print(isinstance(t01, Student))#False
#"老师对象“是一个人类型
print(isinstance(t01, Person))#True
2.issubclass()
#2.判断一个类型是否属于另一个类型
#"老师类型”不是一个学生类型
print(issubclass (Teacher, Student))#False
#"老师类型”是一个人类型
print(issubclass (Teacher , Person))# True
# "人类型"不是一个老师类型
print(issubclass (Person , Teacher))# False
下面的图帮助大家理解其思想:
练习
定义父类:
动物(行为∶叫)
定义子类:
狗(行为∶跑)
鸟(行为∶飞)
创建三个类型的对象
体会∶ isinstance(对象,类型)
体会∶ issubclass(类型,类型)
class Animal:
def shout(self):
print("叫")
class Dog(Animal):
def run(self):
print("跑")
class Bird(Animal):
def fly(self):
print("飞")
bird = Bird()
print(isinstance(bird, Bird))#True
print(isinstance(bird, Dog))#False
print(isinstance(bird, Animal))#True
print(issubclass(Bird,Dog))#False
print(issubclass(Bird,Animal))#True
print(issubclass(Animal,Bird))#False
继承的变量
"""
继承--变量
"""
class Person:
def __init__(self