我必須像這樣使用 datetime 減去 2 個日期:
datetime.datetime.now() - datetime.timedelta(minutes=15)
# subtracting 15 minutes
問題是我不一定需要減去分鐘。我有一本字典,告訴我應該減去什么。
period = {'quantity': '15', 'time': 'minutes'}
但我需要當字典改變時,減去的時間也會改變。像這樣:
if period['time'] == 'minutes':
tempo_atras = datetime.datetime.now() -datetime.timedelta(minutes=int(period['quantity']))
elif period['time'] == 'hours':
tempo_atras = datetime.datetime.now() - datetime.timedelta(hours=int(period['quantity']))
elif period['time'] == 'days':
tempo_atras = datetime.datetime.now() - datetime.timedelta(days=int(period['quantity']))
elif period['time'] == 'weeks':
tempo_atras = datetime.datetime.now() - datetime.timedelta(weeks=int(period['quantity']))
感覺自己寫的方式不干凈,所以需要period['time']在函式引數中轉換字串的方式;就像是:
tempo_atras = datetime.datetime.now() - datetime.timedelta(period['time']=int(period['quantity']))
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
您可以使用字典解包運算子**將字典擴展為關鍵字引數,因此您只需先制作字典。
q = {period['time']: int(period['quantity'])}
tempo_atras = datetime.datetime.now() - datetime.timedelta(**q)
檔案:
- 教程:拆包引數串列
- 參考:來電
uj5u.com熱心網友回復:
您必須轉換字典,以便期間指向數量。然后正常使用字典解包。
import datetime
period = {'quantity': '15', 'time': 'minutes'}
# convert the dictionary to a dictionary of "minutes"= "15"
period = {period['time']: int(period['quantity'])}
print(period)
tempo_atras = datetime.datetime.now() - datetime.timedelta(**period)
注意:您可以在此處閱讀有關此格式(以及*串列格式)的更多資訊:更多關于定義函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/410751.html
標籤:
