装饰模式:动态地给一个对象增加一些额外的职责,就拓展对象功能来说,装饰模式比生产子类更为灵活
from abc import ABCMeta,abstractmethod
class Person:
def __init__(self,name):
self.__name = name
@abstractmethod
def wear(self):
print("着装")
class Student(Person):
def __init__(self,name):
super().__init__(name)
@abstractmethod
def wear(self):
print("我是一名学生,着装很简单")
super().wear()
print("只穿校服")
class Doctor(Student):
def __init__(self,name):
super().__init__(name)
@abstractmethod
def wear(self):
super().wear()
print("我现在是一名博士生,有一些正装")
def test():
student = Student("张三")
student.wear()
print(" ")
docttor = Doctor("李四")
docttor.wear()
test()
输出结果:
我是一名学生,着装很简单
着装
只穿校服
我是一名学生,着装很简单
着装
只穿校服
我现在是一名博士生,有一些正装
aaa