【问题标题】:Print statement inside function used within lambda function not executinglambda函数中使用的函数内部的打印语句未执行
【发布时间】:2019-02-12 20:34:05
【问题描述】:

在下面的代码中,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

【问题讨论】:

  • 你在哪里设置n?
  • @vs97 这是较大代码的一部分。我只是将 n 硬编码为 3 进行测试。你想让我发布更多代码吗?很遗憾,我无法发布所有代码。

标签: python python-3.x lambda anonymous-function


【解决方案1】:

作品:

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)

Lambdas 只有在你实际使用它们时才会被执行 - 如果你没有得到输出,你可能永远不会使用它。

输出:

--> (5, (5, 3))
--> (4, (5, 3))
--> (3, (5, 3))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多