Damien Blasko8,517 Points
's' is an invalid keyword for this function. Why? Must I create a complicated branching structure for this function?
There must be a better, and more concise way, to create this function, than to construct complex branching structures, which is my only alternative if I cannot use an argument to the function as a named input variable to datetime.timedelta
Can anyone offer any insight?
import datetime starter = datetime.datetime(2015, 10, 21, 16, 29) # Remember, you can't set "years" on a timedelta! # Consider a year to be 365 days. ## Example # time_machine(5, "minutes") => datetime(2015, 10, 21, 16, 34) def time_machine(i, s): my_timedelta = datetime.timedelta(s=i) return starter + my_timedelta
Steven Parker203,989 Points
I'm not sure what you mean by "complicated branching structure", but the only special case you need to account for is when the specified units are "years". So you will probably need one conditional test.