Discuss / Python / 请教函数的定义

请教函数的定义

def adder(x):
    def wrsd(y):
        print(y)
        print(x)
        return x+y
        
    return wrsd
g=adder(5)
print(g)
print(g(1))

上面这段代码输出的结果是

<function adder.<locals>.wrsd at 0x0000000002366D90>

1

5

6

我的第一个问题是<function adder.<locals>.wrsd at 0x0000000002366D90>代表g是一个函数的意思吗?还是一个闭包?

第二问题是为什么adder(5),5传入函数,函数认为y=5,那么x这时是多少?正常不应该是认为x=5,然后y没给就会报错,说缺少参数吗?


  • 1

Reply