今天看Python习题,看到如下题目 def num(): return [lambda x: i*x for i in range(4)] print([m(2) for m in num()]) # 求输出结果是什么 我看了半天才明白这应该是一个列表生成式,列表中的元素为四个匿名函数,我本以为每个匿名函数应该是不一样的,因为他们的 i 不一样,所以应该返回的结果也会不同.可当我在命令行输出测试后才发现,完全不是这么回事啊!下面是输出结果 [6, 6, 6, 6] # 是真的6啊 后来去网上搜…