2013-04-05 128 views
1

我们已经知道datetime.timedelta(hours = 5)是一个合适的语法。 如何传递一个可以替换下面的函数中给出的'小时'的参数?如何将参数传递给datetime.timedelta

def check_time(until_when, def_time, how_long): 
      if until_when- datetime.datetime.now() > datetime.timedelta(def_time = how_long): 
      input('Task has been finished.\nPress any key to quit\n') 
      exit() 
+1

[传递kwargs名单?]的可能重复(http://stackoverflow.com/questions/1496346/passing-a-list-of-kwargs ) – tacaswell 2013-04-06 00:00:30

+0

你想'小时'被替换,例如通过“分钟”甚至“秒”通过def_time? – 2013-04-06 00:03:11

+0

非常感谢您的帮助。克瓦格斯正是我想要这样做的方式。 – Ali 2013-04-06 01:45:02

回答

4
def check_time(until_when, def_time, how_long): 
    arg_dict = {def_time:how_long} 
    dt = datetime.timedelta(**arg_dict) 
    if until_when- datetime.datetime.now() > dt: 
     input('Task has been finished.\nPress any key to quit\n') 
     exit() 

Understanding kwargs in Pythonthe tutorial.

+0

+1是的!我认为这正是OP想要的! – 2013-04-06 00:04:58