修复Python代码D={firstone,firsttwo}报错 实现函数输出存入字典
问题核心原因
- 你的函数只有
print()打印逻辑,没有return返回值,无法捕获运算结果存入字典 - 你使用的
{firstone,firsttwo}是集合语法,不符合字典{键:值}的键值对结构,且直接写函数名不会执行函数获取结果,只是引用函数对象本身
最优修正方案(修改函数增加返回值)
def firstone(): x = 1 # 用return把结果返回给调用方 return x def firsttwo(): y = 1 return y # 构造字典,键可自定义,值为函数调用后的返回结果 D = {"firstone_result": firstone(), "firsttwo_result": firsttwo()}
特殊场景方案(无法修改原有函数的print逻辑时使用)
如果你确实不能调整原有函数的打印逻辑,可以通过捕获标准输出的方式拿到打印内容,该方案可读性和性能较差,非必要不推荐:
import sys from io import StringIO def capture_print(func): old_stdout = sys.stdout buffer = StringIO() sys.stdout = buffer func() sys.stdout = old_stdout # 转换为对应类型并去掉换行符 return int(buffer.getvalue().strip()) D = {"firstone_result": capture_print(firstone), "firsttwo_result": capture_print(firsttwo)}
内容的提问来源于stack exchange,提问作者user15910284
相关产品推荐
相关产品推荐

