OK, no problem. One more thing I just thought of, I think the following two times:00:00:00 and 24:00:00 are the same time. So you need to restrict your input values to one or the other.
Either restrict hours to be strictly greater than zero or restrict hours to be strictly less than 24.
This is a minor point, but details are everything in programming. Richard----- Original Message ----- From: "edward" <personal.edward@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx> Sent: Monday, November 23, 2009 2:32 PM Subject: RE: Python question
Very helpful, thank you. Edward -----Original Message----- From: programmingblind-bounce@xxxxxxxxxxxxx [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Richard Dinger Sent: Monday, November 23, 2009 5:25 PM To: programmingblind@xxxxxxxxxxxxx Subject: Re: Python question Edward, A few notes about your problem: 1. The signature for your isAfter method should look something like this: def isAfter(self, other): then inside the body of the method you can refer to the attributes of each object like this: if self.hour > other.hour: and so forth to make whatever comparisons you like. 2. Outside the class then, you call your isAfter function something like this for two objects named t1 and t2: t1.isAfter(t2) 3. Your problem of comparing may be simplified if you pick a betterabstraction for your time. Consider keeping the hour, minute and second ina container object such as a tuple, which can be compared directly. 4. You can also format your string representation directly from a tuple using the string formatting operator. "the time is %02d:%02d:%02d" % hr_min_sec_tuple 5. In your initialization (constructor) method, you do not check for valid input. As a result negative or too large values may be entered. Consider using an assertion to control input value errors: assert hour >= 0 assert hours <= 24 etc. the assertion will halt execution if an error occurs. 6. Finally, you can overload the "<" and ">" operators in your class and then compare MakeTime objects directly such as: if t1 > t2: Richard----- Original Message -----From: edward <mailto:personal.edward@xxxxxxxxx> To: programmingblind@xxxxxxxxxxxxx Sent: Saturday, November 21, 2009 4:48 PM Subject: Python question hello all I am trying to check if one time comes immediately after another. Iwrote a method called isAfter. the problem is how do I use it. meaning to use a method in python the syntax is x.isAfter but I have two variables notone. so I need to x's. edward code starts class WhatTime: def __init__(self, hour,minute,second): self.second=second self.minute=minute self.hour=hour def isAfter(self,t1,t2): check=t2-t1 return 1 in check def __str__(self): return "the time is: "+str(self.hour)+":"+str(self.minute)+" "+str(self.second) t=WhatTime(10,25,43) print t t1=WhatTime(10,12,13) t2=WhatTime(10,12,14) isAfter __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind
__________View the list's information and change your settings at //www.freelists.org/list/programmingblind