首页 > 解决方案 > 方法放在哪里?类/模块职责

问题描述

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

我有以下设置:

|-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 将所有类型的数据源转换为标准汽车对象。但随后它将输出有关汽车的信息。每个子模块(Tires-Engine)都是 Car 类的一个类属性。

您认为最好将打印/输出职责放在哪里?他们是否坐在 main 中,因为它处理到不同地方的输出?它是否位于 Car 中,因为那是我的主要对象,还是我将 print() 方法放在每个子模块中,因为它们知道自己的属性?(我倾向于什么)。现在子模块继承自 (object),而不是 Car,仅供参考。

我很欣赏这方面的建议。

标签: pythonoop

解决方案


我建议在汽车中进行。

你的 car.py 是一种模型类,定义明确,你main.py就像一个序列化器的网格,所以我想从Django. 在 Django 中,建议覆盖__unicode__()以提供模型的独立于序列化程序的标准输出表示。


推荐阅读