python - Python - 如何访问 aggergate 中的类对象属性(对于该类的所有实例)?
问题描述
我正在设计一个 python 程序来模拟 3+ 辆汽车的车队。我为每辆车建立了一个具有特定属性和功能的车辆类:
class Vehicle():
def __init__(self, VIN, color, odometer):
self.VIN = VIN
self.color = color
self.odometer = odometer
# many other functions...
我的目标是访问“舰队”的参数并回答以下问题:
- 总共有多少辆汽车?
- 所有里程表的总和(距离)是多少?
- 有多少辆红色汽车?
有人建议我使用抽象基类,但不确定这是否是最好的方法?回答这些问题的推荐方法是什么?谢谢。
我在下面创建了一个简单的尝试/模拟代码:
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', 'red', 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
解决方案
推荐阅读
- jasper-reports - 是否可以在主报告中包含子报告作为二进制文件的一部分?
- vb.net - VB.NET 2010 - 用于 FTPS 的 WinSCP 包
- jquery - 如何使用内联 jquery 迭代组合框中的响应值?-姜戈
- java - Apache Camel 自定义服务和关闭
- flask - 无法通过apt安装任何东西。没有名为“flask”的模块
- swift - 将 VNCoreMLFeatureValueObservation 转换为 VNDetectedObjectObservation
- html - 指向 url 时的 href vs html 标签
- matlab - Body of this Matlab function works, but not the function itself (interp1 error)
- salesforce - 在 Salesforce 中重现基于时间的工作流程
- ruby-on-rails - 如何在rails的active_admin中添加一个动作