python - Python 函数在 Django 中被调用得太快
问题描述
即使我将它分配给一个变量,API 调用也会触发得太快。
我已经实现了一些想法,如示例中所示(不是实际的代码,而是相同的原理)。
""" Example #1 """
fruit = 'banana'
def search_engine(fruit):
engine = {
'apple': google.search(Time="10 hours ago"),
'banana': yahoo.searchNow(Time="12 min ago"),
'pear': bing.searchNow(Time="13h ago"),
}
print(engine[fruit])
search_engine(fruit)
""" Example #2 """
fruit = 'banana'
def search_engine(fruit):
GS = google.search(Time="10 hours ago")
YS = yahoo.searchNow(Time="12 min ago")
BS = bing.searchNow(Time="13h ago")
engine = {
'apple': GS,
'banana': YS,
'pear': BS,
}
print(engine[fruit])
让我们假设 Time 是一个不正确的值,无论如何都会抛出异常。
然而,在示例 #1 中,首先调用“apple”并抛出异常,而应该调用“banana”。
在示例 #2 中,它在“GS = google.search(Time....”处引发异常,而不是为“YS = yahoo.searchNow...”执行此操作
自从尝试将我的 Python 项目集成到 Django 中后,我才遇到这个问题。
解决方案
您应该分别存储可调用对象及其参数,并在检索项目时调用它们。
engine = {
'apple': (google.search, {"Time": "10 hours ago"}),
'banana': (yahoo.searchNow, {"Time": "12 min ago"}),
'pear': (bing.searchNow, {"Time": "13h ago"}),
}
obj, kwargs = engine[fruit]
print(obj(**kwargs))
推荐阅读
- arrays - 在 JSONB 数组中强制唯一性
- mysql - Mysql 是否省略尾随空格?
- ios - 如何使用 DispatchQueue 使视图在一段时间后出现和消失?
- java - 如何从 Android Studio 中的实时 Firebase 检索特定用户
- r - str_extract 带有引号和分号的正则表达式
- c++ - 在 C++ 中请求条件信息
- r - 如何使用 quadprog::solve.QP 解决 R 中的错误?
- c++ - "
(退出值:-1,073,741,511)“运行时出现 Eclipse C++ 错误 - azure-application-insights - Kusto 查询,如何保存查询结果并稍后使用
- c# - 如何将 A.CallTo 与 context.T.AddAsync 一起使用