【发布时间】:2020-05-13 04:14:07
【问题描述】:
所以,我无法弄清楚如何最好地构建我的 Python 代码。我有一个使用类的简短程序,我在下面的示例中重新创建了它:
prof1 = Professor()
prof2 = Professor()
professor_list = [prof1, prof2]
class Professor:
def __init__(self):
self.name = ""
self.department = ""
self.course = ""
self.students = []
class Student:
def __init__(self):
self.name = ""
self.activities = []
所以基本上,我有一个对象列表,它们是Professor 类的实例。每个 Professor 对象还包含一个 Student 对象列表,每个对象都是 Student 类的一个实例。我希望每个学生也能够从其对应的教授(列表中包含该学生的教授对象)访问course 变量,但我不确定最简洁的方法是什么。
我考虑让Student 从Professor 继承,但这似乎很草率,因为我实际上并不想从Professor 继承所有变量和功能。比如Professor的department变量跟一个Student对象没有关系,我不希望Student有一个department属性。此外,学生不是教授的子类型,我认为这是与继承相关的。
我还想过手动将课程信息作为属性添加到每个学生,但这似乎也不正确。在我想要的结构中,课程将是教授的独特属性,并且各种学生将与教授相关联。所有需要访问 course 变量的学生都在教授的学生列表中 - 所以难道不应该有一种比手动添加给每个学生更简洁的方法让他们使用它吗?
这里还有一个想法:我可能会在每个Student 中包含对相应Professor 类的引用,并以这种方式访问变量。这是不好的做法吗?
非常感谢您对此提供的任何帮助。
【问题讨论】:
标签: python-3.x class inheritance