擅长:python、mysql、java
<pre><code>from collections import defaultdict
import datetime
class ElectricVehicle(object):
ev_by_id = {}
ev_by_battery = defaultdict(list)
@classmethod
def find(cls, id=None, battery=None):
if id is not None:
return [cls.ev_by_id[id]]
elif battery is not None:
return cls.ev_by_battery[battery]
else:
return []
def __init__(self, id, battery, states):
self.id = id
ElectricVehicle.ev_by_id[id] = self
self.battery = battery
ElectricVehicle.ev_by_battery[battery].append(self)
self.states = list(states)
def state_at(self, time):
return self.states[(time.hour*60 + time.minute)/5]
ElectricVehicle(12345, 24, [0.99, 0.99, 0.99])
ElectricVehicle(12346, 30, [0.90, 0.90, 0.89])
evs = ElectricVehicle.find(battery=24)
for ev in evs:
time = datetime.time(0,3,0) # 00:03:00
print("{}: {}".format(ev.id, ev.state_at(time)))
# will print "12345: 0.99"
</code></pre>