python - 如何将字符串作为关键字参数传递给方法
问题描述
是否可以将字符串作为关键字参数传递给函数/方法?
下面的代码工作得很好
start_time = datetime.datetime.strptime('2019-01-01', '%Y-%m-%d')
end_time = start_time + datetime.timedelta(days=1)
print(end_time)
但是,如果我将一个字符串传递给 datetime.timedelta
delta = 'days=1'
start_time = datetime.datetime.strptime('2019-01-01', '%Y-%m-%d')
end_time = start_time + datetime.timedelta(delta)
print(end_time)
然后它会返回
TypeError: unsupported type for timedelta days component: str
但是,如果我从用户输入中得到“days=1”或“hours=2”或“seconds=5”怎么办?
完成这项工作的一种方法是解析用户输入并创建多个 if/elif 语句。
有更好的吗?
解决方案
Perhaps pass in the named parameters using the **
operator:
params=dict()
params['hours']=2
datetime.timedelta(**params)
# datetime.timedelta(0, 7200)
推荐阅读
- file - (Godot Engine) Creating folders on network drives, UNC paths
- vue.js - 是否可以集成一个可点击的单元格来验证 v-data-table?
- python - How to track progress with nlp.pipe function of spacy?
- rust - 从 RefCell 获取引用
- mongodb - 如何将数据保存在 $group 中?
- chatbot - Messenger Chatbot OTN 错误:(#100) 提供的一次性令牌无效
- c# - 另一个类中的 C# 类声明
- python-3.x - 关于数据帧上的 lambda 函数的问题
- python - 如何使用 python 将我的世界基岩版 mcstructure 文件转换为字典
- macos - 将mysql升级到8后mysql2无法正常工作