OOP with MyTime

MRAB python at mrabarnett.plus.com
Wed Jul 2 22:02:00 CEST 2014

On 2014-07-02 20:20, kjakupak at gmail.com wrote:
> I'm trying to write a boolean function that takes two Mytime objects, t1 and t2 as arguments, and returns True if the object falls inbetween the two times.
> This is a question from the How to Think Like a Computer Scientist book, and I need help.
> What I've gotten so far:
> class MyTime:
>      def __init__(self, hrs=0, mins=0, secs=0):
>          self.hours = hrs
>          self.minutes = mins
>          self.seconds = secs
>      def between(t1, t2):
>          if float(t1 <= t3) and float(t3 < t2):
>              return True
>          else:
>              return False
> I just don't understand how to make a function that uses MyTime objects into the boolean function? Any help would be great.
If you want 'between' to be an instance method of the MyTime class, it
needs 'self' as well as the 2 arguments 't1' and 't2'.

You can then compare the hours, minutes and seconds of self against
those of t1 and t2:

     def between(self, t1, t2):
         return (t1.hours, t1.minutes, t1.seconds) <= (self.hours, 
self.minutes, self.seconds) and (self.hours, self.minutes, self.seconds) 
<= (t2.hours, t2.minutes, t2.seconds)

That could be shortened further using chained comparisons.

Note that the code assumes that the times t1 and t2 are ordered, i.e.
that time t1 is not later/greater than time t2.

More information about the Python-list mailing list