Tue, 20 Jun 2017 09:39:42 +0300
optimointia
buses.py | file | annotate | diff | comparison | revisions |
--- a/buses.py Tue Jun 20 09:37:43 2017 +0300 +++ b/buses.py Tue Jun 20 09:39:42 2017 +0300 @@ -109,7 +109,7 @@ # ja jos tämä ajo pysähtyy tällä pysäkillä, ei kuitenkaan saapuen # päätepysäkille, stop = trip.pysäkkiReitillä(self) - if stop and not stop.isArrival(): # stop is not trip.reitti[-1]: + if stop and not stop.isArrival: # stop is not trip.reitti[-1]: # ja jos tämä pysähdys on tulevaisuudessa, stop_time = datetime.combine(date, time()) + stop.saapumisaika if stop_time >= nyt(): @@ -128,15 +128,21 @@ self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo = saapumisaika, lähtöaika, \ pysäkki, ajo self.ajettu_matka = ajettu_matka + self._isArrival = None + @property def isArrival(self): - iterator = iter(self.ajo.reitti) - stop = next(iterator) - while stop is not self: + if self._isArrival is None: + iterator = iter(self.ajo.reitti) stop = next(iterator) - for stop in iterator: - if stop.pysäkki.alue != self.pysäkki.alue: - return False - return True + while stop is not self: + stop = next(iterator) + for stop in iterator: + if stop.pysäkki.alue != self.pysäkki.alue: + self._isArrival = False + break + else: + self._isArrival = True + return self._isArrival def __repr__(self): return 'Pysähdys(%r, %r, %r, %r)' % (self.saapumisaika, self.lähtöaika, self.pysäkki, self.ajo)