Discuss / Python / 这是在练习过程中遇到的问题,各位大佬看看是怎么回事

这是在练习过程中遇到的问题,各位大佬看看是怎么回事

Topic source

def build(x, y):

    return lambda: x * x + y * y

build(2,3)

Out[3]:

<function __main__.build.<locals>.<lambda>()>
r=build(2,3)
print(r)
In [6]:
print(r)
<function build.<locals>.<lambda> at 0x00000124C3F758C8>

因为你 build 函数 返回的是一个表达式 也就是一个匿名函数, 想要结果的话 请执行 r()

哇是滴谢谢啦

金钟铉

#4 Created at ... [Delete] [Delete and Lock User]

闭包

好像暂时还不知道闭包是啥意思。。。

ywjco_567

#6 Created at ... [Delete] [Delete and Lock User]

print(r)

<function build.<locals>.<lambda> at 0x00000124C3F758C8>

print(r)就说明了问题:r=build(2,3)只是一个lambda,并没有执行这个lambda

附加一个立即执行就可以了。

r = build(2,3)()
print(r)

  • 1

Reply