python 函数的任意输入参数

Arbitrary input parameters to python functions

我目前正在使用 datetime 包中的 timedelta 函数。 timedelta 的默认参数列表是 datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0).

我将为我的函数接受两个输入:frequencytimespan,其中 frequency 是指定时间跨度内指定的整数,timespan 是天、秒、微秒、毫秒、分钟、小时、周之一的字符串。

目前我正在编写一堆 if-else 来决定我应该使用 frequency 填充 timedelta 的哪些参数。我想知道是否有更优雅的方式,例如参数化参数 timedelta?

谢谢!

---编辑--- 我当前的代码:

from datetime import datetime, timedelta

def myfunction(frequency, timespan):
   if timespan == "days":
      return datetime.now() + timedelta(days=frequency)
   elif timespan == "seconds":
      return datetime.now() + timedelta(seconds=frequency)
   elif timespan == "microseconds":
      return datetime.now() + timedelta(microseconds=frequency)
   elif timespan == "milliseconds":
      return datetime.now() + timedelta(milliseconds=frequency)
   elif timespan == "minutes":
      return datetime.now() + timedelta(minutes=frequency)
   elif timespan == "hours":
      return datetime.now() + timedelta(hours=frequency)
   else:
      return datetime.now() + timedelta(weeks=frequency)

你可以只把参数放在一个字典中,让 python 完成工作:

def myfunction(frequency, timespan):
    return timedelta(**{timespan:frequency})