在未执行的 lambda 函数中使用的函数内的打印语句
Print statement inside function used within lambda function not executing
在下面的代码中,gen_window
有一个打印语句,但是当我 运行 代码时,打印语句没有被执行。为什么会这样,然后我应该如何调试这样的 lambda 函数? (甚至调试器也会忽略这些函数中的断点。)
getpairs = rdd.flatMap(lambda xi: gen_window(xi, n))
def gen_window(xi, n):
x, i = xi
l = []
for offset in range(n):
print("-->", (i - offset, (i, x)))
l.append((i - offset, (i, x)))
return l
作品:
def gen_window(xi, n):
x, i = xi
l = []
for offset in range(n):
print("-->", (i - offset, (i, x)))
l.append((i - offset, (i, x)))
return l
xi = [3,5]
n = 3
gen_window(xi, n)
Lambda 只会在您实际使用它们时执行 - 如果您没有得到任何输出,您可能永远不会使用它。
输出:
--> (5, (5, 3))
--> (4, (5, 3))
--> (3, (5, 3))
在下面的代码中,gen_window
有一个打印语句,但是当我 运行 代码时,打印语句没有被执行。为什么会这样,然后我应该如何调试这样的 lambda 函数? (甚至调试器也会忽略这些函数中的断点。)
getpairs = rdd.flatMap(lambda xi: gen_window(xi, n))
def gen_window(xi, n):
x, i = xi
l = []
for offset in range(n):
print("-->", (i - offset, (i, x)))
l.append((i - offset, (i, x)))
return l
作品:
def gen_window(xi, n):
x, i = xi
l = []
for offset in range(n):
print("-->", (i - offset, (i, x)))
l.append((i - offset, (i, x)))
return l
xi = [3,5]
n = 3
gen_window(xi, n)
Lambda 只会在您实际使用它们时执行 - 如果您没有得到任何输出,您可能永远不会使用它。
输出:
--> (5, (5, 3))
--> (4, (5, 3))
--> (3, (5, 3))