Python中如何为字典值对应的函数传递参数
解决方案
首先注意:你的字典dict1当前存储的是函数调用后的结果(比如sm.xyz.cdd()是执行该函数后的返回值),但我们需要存储函数本身才能后续传参调用。所以先修改字典:
# 修改字典,存储函数对象而非调用结果 dict1 = { "abc": sm.xyz.cdd, "def": sm.acf.fdr, "ghi": sm.rty.qsd, }
然后定义目标函数fun:
def fun(key, param): # 从字典中取出对应的函数并调用,传入参数 return dict1[key](param)
这样调用fun("abc", "log")时,就等价于执行sm.xyz.cdd("log")。
如果必须保留原字典的写法(即字典值是函数调用结果),那需要额外处理:但这种情况通常没有意义,因为函数已经执行过,无法再次传参调用——除非这些函数返回的是另一个可接受参数的函数(闭包)。如果是这种场景,上述fun的写法依然适用,前提是sm.xyz.cdd()返回的是一个能接收字符串参数的函数。
内容的提问来源于stack exchange,提问作者priston
相关产品推荐
相关产品推荐

