> To make a time lapse video I've been playing with the sched module. > There is one problem I run into, in the code below, how do I get the > returned value t from printtime into main?
This is one place where you really are best to use a global variable IMHO. There are some clever tricks using classes and so on but its really much simpler to just define a global which is visible to both main and printtime() > import time > from sched import scheduler > > class time_lapse(scheduler): > def time_lapse(self, start_time, stop_time, interval, priority, > action, argument): > def lapse(): > action(*argument) One possible alternative is to store the return value gere as an attribute. Then main can query the object. > def printtime(strf=None): > t=time.time() > if strf: > print time.strftime("%Y%m%d_%H%M%S") > else: > print time.localtime() > return t I'd keep t as a local but assign the final value to a global with a clear and unambiguous name. > def main(): > schedule = time_lapse(time.time, time.sleep) > start=time.time() > stop=list(time.localtime(start)) > stop[3]=stop[3]+2 > stop=time.mktime(stop) > > schedule.time_lapse(start,stop,7,0,printtime,(1,)) > > schedule.run() However the real question I have is how you intend to access that result value. Is it a single value at the end you want or the cumulative set of values from each scheduled call? Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor