Python - 如何访问 agggate 中的类对象属性对于该类的所有实例?

问题描述

我正在设计一个 Python 程序来模拟 3 辆以上汽车的车队。我为每辆车建立了一个具有特定属性功能的车辆类:

class Vehicle():
    
    def __init__(self,VIN,color,odometer):
        self.VIN = VIN
        self.color = color
        self.odometer = odometer
        
    # many other functions...

我的目标是访问“舰队”的参数并回答以下问题:

  1. 总共有多少辆车?
  2. 所有里程表(距离)的总和是多少?
  3. 有多少辆红色汽车?

我被推荐使用抽象基类,但不确定这是否是最好的方法? 回答这些问题的推荐方法是什么?谢谢。

我在下面创建了一个简单的尝试/模拟代码

class Fleet:
    def __init__(self,input_vehicles):
        "Pass list of vehicle objects to create fleet"
        self.vehicle_list = input_vehicles
        
    def size_total(self):
        "Answer how many vehicles"
        return len(self.vehicle_list)
    
    def size_by_color(self,selected_color):
        "Answer how many cars of a specific color"
        c = 0
        for v in self.vehicle_list:
            if v.color == selected_color:
                c = c + 1
        return c
    
    def total_odometer(self):
        "Answer the total odometer (distance) readings"
        od = 0
        for v in self.vehicle_list:
            od = od + v.odometer
            
        return od

# build vehicles
V1 = Vehicle('1','red',100)
V2 = Vehicle('2',3000)
V3 = Vehicle('3','blue',5)

# build fleet
myfleet = Fleet([V1,V2,V3])

# Get fleet metrics
myfleet.size_total()         # returns 3
myfleet.size_by_color('red') # returns 2
myfleet.total_odometer()     # returns 3105

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)