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)
.
我将为我的函数接受两个输入:frequency
和 timespan
,其中 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})
我目前正在使用 datetime
包中的 timedelta
函数。 timedelta
的默认参数列表是 datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
.
我将为我的函数接受两个输入:frequency
和 timespan
,其中 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})