Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何建模”;“家庭和其他人”;事情_Python_Django_Oop - Fatal编程技术网

Python “如何建模”;“家庭和其他人”;事情

Python “如何建模”;“家庭和其他人”;事情,python,django,oop,Python,Django,Oop,我需要为家庭、父母、孩子和普通人实体建模。我该怎么做? 显然,我可以创建4个甚至5个不同的类:家庭,两个为父母,一个为孩子,一个为人。 但我认为这种方法存在冗余。另一方面,如果我引入一个字段“type”作为family、mother等,那么我还必须为family和其他东西创建一个可为null的字段引用 您的建议?在这种情况下,我认为简单地设置两个类是有意义的,例如 class Person: def __init__(self, name): self.name = na

我需要为家庭、父母、孩子和普通人实体建模。我该怎么做? 显然,我可以创建4个甚至5个不同的类:家庭,两个为父母,一个为孩子,一个为人。 但我认为这种方法存在冗余。另一方面,如果我引入一个字段“type”作为family、mother等,那么我还必须为family和其他东西创建一个可为null的字段引用


您的建议?

在这种情况下,我认为简单地设置两个类是有意义的,例如

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
进行子类化。