Python “如何建模”;“家庭和其他人”;事情
我需要为家庭、父母、孩子和普通人实体建模。我该怎么做? 显然,我可以创建4个甚至5个不同的类:家庭,两个为父母,一个为孩子,一个为人。 但我认为这种方法存在冗余。另一方面,如果我引入一个字段“type”作为family、mother等,那么我还必须为family和其他东西创建一个可为null的字段引用Python “如何建模”;“家庭和其他人”;事情,python,django,oop,Python,Django,Oop,我需要为家庭、父母、孩子和普通人实体建模。我该怎么做? 显然,我可以创建4个甚至5个不同的类:家庭,两个为父母,一个为孩子,一个为人。 但我认为这种方法存在冗余。另一方面,如果我引入一个字段“type”作为family、mother等,那么我还必须为family和其他东西创建一个可为null的字段引用 您的建议?在这种情况下,我认为简单地设置两个类是有意义的,例如 class Person: def __init__(self, name): self.name = na
您的建议?在这种情况下,我认为简单地设置两个类是有意义的,例如
class Person:
def __init__(self, name):
self.name = name
class Family:
def __init__(self):
self.children = []
self.parents = []
然后,Family.children
和Family.parents
可以是Person
对象的列表,其中可以有任意数量的子对象或父对象
如果您想存储关系,您还可以向
Person
添加更多属性,例如Person
可以有其的成员、兄弟姐妹或或父母或子女在这种情况下,我认为简单地拥有两个类是有意义的
class Person:
def __init__(self, name):
self.name = name
class Family:
def __init__(self):
self.children = []
self.parents = []
然后,Family.children
和Family.parents
可以是Person
对象的列表,其中可以有任意数量的子对象或父对象
如果您想存储关系,还可以向人添加更多属性,例如人可以有其兄弟姐妹或成员。父母或子女无类。一个叫“家庭成员”的人,就是这样,这完全取决于你打算用它做什么,母亲和父亲有不同的角色(和方法)吗?一个家庭能没有父母吗?只有一个?没有课。一个叫“家庭成员”的人,就是这样,这完全取决于你打算用它做什么,母亲和父亲有不同的角色(和方法)吗?一个家庭能没有父母吗?只有1?关于self.party
?如果模型的复杂性需要,您还可以为不同类型的家庭成员对Person
进行子类化。关于self.party
,如果模型的复杂性需要,您还可以为不同类型的家庭成员对Person
进行子类化。