Restartired 2022-05-09 02:25 采纳率: 75%
浏览 51

python 调试 步进

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
from functools import reduce
import operator
a=reduce(operator.add, [[1, 2], [3]], []) 
b=reduce(lambda x,y:x+y, [[1, 2], [3]], []) 
c=[1,2]+[3]

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

为什么a的步进直接一步到位给出答案,类似c
b的步进是可以清楚地看到reduce函数的赋值,运算,返回运算结果这三步的(我猜是这三步)
其实b的步进我也有一个问题为什么x首先赋值的是[],而y赋值是[1,2]

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-09 08:19
    关注

    因为b里有lambda表达式,里面是个匿名函数,你其实是跟进匿名函数里面了
    你想看reduce里面到底是怎么执行的,那么不要点step over,而应该点step into,就可以跳转到函数里面
    至于x为什么是[],就是因为你传进去一个参数是[],它是怎么赋值给x的,你可以进入reduce函数里面看它的实现

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月9日
  • 创建了问题 5月9日

悬赏问题

  • ¥20 python爬虫遇到空文本取不出来
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入