学习目标:
ex44.py
学习内容:
class Parent(object):
def override(self):
print("PARENT override()")
#类Parent有一个函数override以self为参数
def implicit(self):
print("PARENT implicit()")
#类Parent有一个函数implicit以self为参数
def altered(self):
print("PARENT altered()")
#类Parent有一个函数altered以self为参数
class Child(Parent):
#创建一个Child的类,它是Parent的一种
def override(self):
print("PARENT override()")
#Child中定义一个同名的函数override,显示覆盖
def altered(self):
print("CHILD, BEFORE PARENT altered()")
super(Child, self).altered()
print("CHILD,AFTER PATENT altered()")
#PARENT altered()
#CHILD, BEFORE PARENT altered()
#PARENT altered()
#CHILD,AFTER PATENT altered()
#1.由于我覆盖了 Parent.altered,实际运行的是 Child.altered
#18行执行结果22
#2.super来获取Parent.altered这个版本,这里我想在前面和后面加一个动作
#3.19行调用了 super(Child, self).altered(),它还知道你的继承关系,并且会访问到 Parent类
#这句你可以读作:“用 Child 和 self 这两个参数调用 super,然后在此返回的基础上调用 altered
#4.到这里函数的 Parent.altered 版本就会运行,而且打印出了 Parent 里的消息
#19行执行结果23
#5.最后,从 Parent.altered 返回, Child.altered 函数接着打印出后面的消息
#20行执行结果24
dad = Parent()
son = Child()
dad.implicit()
son.implicit()
#隐式继承,Parent中定义的函数implicit
dad.override()
son.override()
dad.altered()
son.altered()
学习时间:
2023.6.20
学习产出:
ex44.py