Steve Holden wrote: > waylan wrote: [snip] > > > >>from mod_python import apache > >>from time import strftime, gmtime > >> > > > > def curtime(): > > return strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) > > > > > >>def handler(req): > >> req.content_type = "text/plain" > >> req.send_http_header() > >> req.write(str(curtime())) > >> return apache.OK > > > > > This is a very long way round for a shortcut (though it does have the > merit of working). Why not just > > def handler(req): > req.content_type = "text/plain" > req.send_http_header() > curtime = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) > req.write(str(curtime)) > return apache.OK > > Or even > > def handler(req): > req.content_type = "text/plain" > req.send_http_header() > req.write(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())) > return apache.OK >
While Steve's examples certainly do the trick in this limited case, I assumed that the original poster was just starting with mod_python and I was simply trying to explain the bigger picture for future reference. As one develops more sophisticated code, simply adding it to the `handler` function becomes less desirable. Reacognizing that anything that must be reevaluated on each request must be callable will be a bigger help IMHO. Steve's examples work because the current time is evaluated within `handler` and : >>> callable(handler) True While in the the original example: >>> callable(curtime) False Yet in my example: >>> callable(curtime) True Finally, by way of explaination: >>> callable.__doc__ 'callable(object) -> bool\n\nReturn whether the object is callable (i.e., some kind of function).\nNote that classes are callable, as are instances with a __call__() method.' -- http://mail.python.org/mailman/listinfo/python-list