如何将动态参数传递给datetime.timedelta函数?

2024-07-04 05:54:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python3脚本,其中我使用了timedelta()函数,需要动态地将参数(带值的关键字参数)传递给timedelta()

我试过几种方法,但我不知道怎么做

from datetime import timedelta

timeDeltaArgKey = "minutes"
timeDeltaArgValue = 60


timedelta(timeDeltaArgKey=timeDeltaArgValue)
# TypeError: 'timeDeltaArgKey' is an invalid keyword argument for __new__()

timedelta("{}={}".format(timeDeltaArgKey, timeDeltaArgValue))
# TypeError: unsupported type for timedelta days component: str

我还尝试将其作为数组传入:

timeDeltaKwarg = {"minutes": 60}

timedelta(timeDeltaKwarg)
# TypeError: unsupported type for timedelta days component: dict

Tags: 函数脚本for参数typedayspython3timedelta
3条回答

创建关键字参数字典并将其传递给timedelta

from datetime import timedelta


timeDeltaArg1Key = "days"
timeDeltaArg1Value = 3
timeDeltaArg2Key = "minutes"
timeDeltaArg2Value = 60

kwargs = {timeDeltaArg1Key: timeDeltaArg1Value, timeDeltaArg2Key: timeDeltaArg2Value}

result = timedelta(**kwargs)
print(result)  # -> 3 days, 1:00:00

您需要解压缩字典才能传递:

timeDeltaKwarg = {"minutes": 60}
timedelta(**timeDeltaKwarg)

或者您可以简单地将其作为普通参数传递

timedelta(minutes=60)

您需要按如下方式使用timedelta:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

相关问题 更多 >

    热门问题