第一幅图那个 lambda 函数我真的是很难读懂... 我的理解是: 在 primes 那里的 filter 中从序列 it 中取出的指其实是赋值给了函数中的 x 所以如果改的话可以改成 def _not_divisible(n,x): return x % n 然后如果能把 primes 函数中的 n 指向 n,把序列 it 中取出来的值给 x 就好了...
@yexiaoxing 运行了一下返回的是一个 True 所以我觉得「是不是 lambda x : x % n > 0 会返回一个布尔值,可是这个布尔值并不是_not_divisible 的返回值,所以才在 lambda 之前又加了一个 return? 」这个理解应该没问题? 不过「_not_divisible(5)(2)」很关键啊...就是那个(2)应该是赋值向函数内部 lambda 的 x 的值吧....所以我对前后两幅图前者加了( n )而后者不加的理解是对的喽,因为前者需要 filter 处理的数是 x 的值而不是 n 的值,n 已经专门赋值了