方法放在哪里?类/模块的责任

时间:2018-11-06 00:33:47

标签: python oop

我正在尝试确定哪些模块应该负责我的自定义输出方法。

我有以下设置:

|-main.py
|-libs
    |-Car (attr: Tires, Seats, Doors, Engine)
        |-Tires  (attr: size, age, brand)
        |-Seats (attr: number, material)
        |-Doors (attr: number)
        |-Engine (attr: size, make, model, torque)

现在,我的main.py将所有类型的数据源转换为标准的Car Objects。但随后它将输出有关汽车的信息。每个子模块(轮胎引擎)都是Car类的类属性。

您认为最好将打印/输出职责放在哪里?他们会坐在主要位置,因为它可以处理输出到不同地方的内容吗?它位于Car中,因为这是我的主要对象,还是我将print()方法放在每个子模块中,因为它们知道自己的属性? (我倾向于)。现在,子模块继承自(object),而不继承自Car,仅继承自FYI。

我对此表示感谢。

1 个答案:

答案 0 :(得分:1)

我建议在Car中进行。

您的car.py是一个模型类,定义明确,您的main.py就像是一连串的序列化程序,因此我想从Django中汲取灵感。在Django中,建议覆盖__unicode__()以提供模型的独立于序列化程序的stdout表示形式。