一个类应该有多个属性或一个属性作为具有许多键的字典,Python3

问题描述 投票:0回答:1

我根据环境温度计算了不同位置物体的温度。我有两种实施方式。在BodyA中,每个位置的温度是该类的属性;而在BodyB,有一个属性pos_t,这是一个字典,每个位置的温度只是字典中的一个键值对。

class BodyA:
    def __init__(self, ambient_temperature)
        self.amb_t = ambient_temperature
        self.pos1_t = self.amb_t + 1
        self.pos2_t = self.amb_t * 2
        self.pos3_t = self.pos1_t + self.pos2_t - 5


class BodyB:
    def __init__(self, ambient_temperature)
        self.amb_t = ambient_temperature
        self.pos_t = dict()
        self.pos_t['pos1'] = self.amb_t + 1
        self.pos_t['pos2'] = self.amb_t * 2
        self.pos_t['pos3'] = self.pos_t['pos1'] + self.pos_t['pos2'] - 5

在实际情况中,最多有10个职位,我想从中建立儿童班。有些儿童班没有某些职位。例如,某些孩子可能会遗漏pos2

能不能让我知道,哪个设计在OOP和效率方面更好。谢谢。

python python-3.x oop
1个回答
1
投票

用于存储某些自定义标识符的数据结构,这些标识符可能或可能存在为dict清楚地调用。由于类属性也存储在内部字典中,因此也可以使用第一种方法,但如果没有明确的手写操作而需要实际操作,则成员将需要不同的代码。我怀疑表现无关紧要。如果你发现它很重要,可能会重新设计完全不使用类的数据结构,因为对象创建处理时间可能是相关的。

© www.soinside.com 2019 - 2024. All rights reserved.