簡體   English   中英

如何將動態 arguments 傳遞給 datetime.timedelta function?

[英]How pass dynamic arguments to the datetime.timedelta function?

我正在使用 python3 腳本,我使用timedelta() function 並且需要將參數(關鍵字 arguments 與值)動態傳遞給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

創建一個關鍵字 arguments 字典並將其傳遞給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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM