如何将集合和单个值映射为函数

时间:2018-11-28 22:38:17

标签: python

我有一个带有两个参数(连接(对象)和sql_query(字符串))的invoke_query函数。我在集合中有一组查询query = [“ queryA”,“ queryB”]。我想将连接对象和查询集中的每个项目传递给函数invoke_query。这可能吗,还是我做错了?

connector = handlers.helpers.sf_connector.SF_CONNECTOR().get_connector(str(Schemas.PRIVATE))

queries = ["create table A...", "create table B..."]

with ThreadPoolExecutor() as executor:
    results = executor.map(invoke_query, connector, queries)

def invoke_query(connection, sql):
    cursor = connection.cursor()
    cursor.execute(sql)

1 个答案:

答案 0 :(得分:1)

如评论中所述,最简单的方法是最好的:

for sql in queries:
    invoke_query(connection, sql)

如果要处理结果,内置的“ map”可以满足您的要求,但是首先您需要使函数仅接受一个参数。

from functools import partial
invoke = partial (invoke_query, connection)
for result in map (invoke, queries): 
    #...

但是在简单情况下没有优势。