我有一个超类,其中一个属性是枚举
有一些特定的子类继承自这个类,其中只有一个枚举的情况是有意义的,所以理想情况下,我想防止它在这些子类中被更改
下面是一个使用医疗专业人员的最小示例:
from enum import Enum, unique, auto
# My enum for medical specialities
@unique
class Speciality (Enum):
Anaesthetics = auto()
Dermatology = auto()
General_Practice = auto()
Surgery = auto()
# My superclass
class Doctor:
speciality = Specialty # Could be any case
# An example subclass
class GP (Doctor):
speciality = Specialty.GeneralPractice # Must be General Practice
有没有办法使speciality
属性在GP子类中不可变?如果没有,有没有实现类似功能的方法
基于最初的对话并使用property decorators,这应该是可行的:
它允许您读取但不写入
specialty
属性:进一步阅读:Property和Abstract Base Classes
相关问题 更多 >
编程相关推荐