On 7/27/20 10:01 AM, Peter Moore wrote: > I have had a long standing unanswered question on on stackoverflow: is it > possible to pass a function to a default parameter so that you could do in > essence things like this. > > def time_diff(target_time, curr_time= lambda : datetime.now() ): > return curr_time - target_time > > this would be an syntactical improvement over this style where you have if > statement to initialize a missing parameter. > > def time_diff(target_time, curr_time=None): > if curr_time == None: > curr_time = datetime.datetime.now() > return curr_time - target_time I will point out that you CAN pass a function as the default value of a function parameter, and it means that the parameter will be bound to the function itself, so it becomes a callable (so doesn't help you in your case). But this does become an impediment to trying to define it this way, you need somehow to distinguish between the function itself being the default value, or some magically invocation of the function at each call.
-- Richard Damon _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/64ZTCJWJO74KD2EFUOSICOPT6XTSBO2R/ Code of Conduct: http://python.org/psf/codeofconduct/