处理大型物体的pythonic方法是什么?在我的例子中,我可以有一个大类创建一个具有许多属性的实例,或者我可以将它们中的一些组合在一起(参见类Car和类Motor):
class Car(object):
color = "red"
def __init__(self, num_wheels):
self.burst = Motor(self)
self.wheels = num_wheels
for i in range(self.wheels):
setattr(self, "wheel{}".format(i), Wheel(self, i))
def _query(self, value):
print "Get Serial Data: {}".format(value)
class Motor(object): # Object is loaded only once in Car instance
def __init__(self, top):
self._top = top
def temperature(self):
return self._top._query("GET MOTOR TEMP")
def rpm(self):
return self._top._query("GET MOTOR RPM")
class Wheel(object): # Object could be loaded many times in Car instance
def __init__(self, top, number):
self._top = top
self._number = number
def temperature(self):
return self._top._query("GET WHEEL TEMP {}".format(self._number))
def rpm(self):
return self._top._query("GET WHEEL RPM {}".format(self._number))
我认为当汽车有多个车轮时,这更有意义,因为我可以添加更多车轮。
但是,由于Motor从未被使用过多次而且从未使用过其他地方,将它们放入Car类更好的风格:
class Car(object):
color = "red"
def __init__(self, num_wheels):
# Add wheels or other stuff
def _query(self, value):
print "Get Serial Data: {}".format(value)
def motor_temperature(self):
return self._query("GET MOTOR TEMP")
def motor_rpm(self):
return self.._query("GET MOTOR RPM")
我必须从Wheel和/或Motor类访问Car._query(),我的真实生活对象包含我可以在4-5个子实例中分组的大约40个属性和方法。在网上找不到这个主题。