我想創建一個簡單的函數,它允許用戶輸入將更改日期時間對象的值的基本信息,並且我想通過使用變量作爲關鍵字,找到一種儘可能乾淨的方法。這很容易以不同的方式完成,但我認爲知道如何替換預設的關鍵字會很有用。使用變量作爲預定義關鍵字(Python)的函數的關鍵字
DateTime對象有一個.replace()方法,它的任何時間值作爲關鍵字:
datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
但我想允許用戶指定多少哪一種時間(例如,2天; 4小時; 1個月)。
我試圖取代任何上述關鍵字上升到「分」與任何用戶輸入,存儲在time_type變量,但我得到「類型錯誤:‘time_type’是一個無效的關鍵字該功能的參數「。
start_time = datetime.datetime(2016, 09, 16, 15, 30)
def change_time(integer, time_string):
time_type = time_string.replace("s","") # de-pluralizes input
new_time = getattr(start_time, time_type) + integer
print(start_time.replace(time_type=new_time))
change_time(2, "days")
這應該打印新的start_time,它是(2016,09,18,15,30),但我只是得到一個錯誤。
建立的參數的字典,然後使用''**解壓(見http://stackoverflow.com/q/36901/3001761 )。 – jonrsharpe