相关疑难解决方法(0)

嵌套函数如何在Python中运行?

def maker(n):
    def action(x):
        return x ** n
    return action

f = maker(2)
print(f)
print(f(3))
print(f(4))

g = maker(3)
print(g(3))

print(f(3)) # still remembers 2
Run Code Online (Sandbox Code Playgroud)

为什么嵌套函数会记住第一个值,2即使maker()已经返回并退出时action()被调用?

python closures nested function nested-function

56
推荐指数
5
解决办法
6万
查看次数

什么时候关闭?

我看过关闭的样本 - 什么是'关闭'?

任何人都可以提供何时使用闭包的简单示例?

具体来说,闭包有意义吗?

让我们假设语言没有关闭支持,如何才能实现类似的东西呢?

不要冒犯任何人,请用c#,python,javascript,ruby等语言发布代码示例.
很抱歉,我还不懂函数式语言.

c# closures functional-programming

37
推荐指数
4
解决办法
8697
查看次数

我知道封闭是什么,但我仍然不明白为什么(或何时)你会使用它们

我对闭包的理解是它们本质上是一个函数,它使用一个你认为超出范围的变量.我想这是我前几天看到的一个例子:

function closureMaker(somearg)
{
    var local_value = 7;
    function funcToReturn(arg1, arg2)
    {
        return local_value + somearg + arg1 + arg2;
    }
    return funcToReturn;
}
var myClosure = closureMaker(6);  //make the closure
myClosure(2, 3);                  //using it
Run Code Online (Sandbox Code Playgroud)

现在闭包有local_value甚至是原始的arg,somearg.但我不明白为什么这些都有帮助.使用'free'变量local_value有什么意义,甚至更不为我所知,为什么你会在闭包函数中使用closureMaking函数的参数?

我对如何在javascript中使用它更感兴趣,这是否用于AJAX请求和对象?

我得到了什么.我需要为什么.

javascript closures programming-languages

12
推荐指数
2
解决办法
428
查看次数

什么是封闭功能?

根据python教程,函数在查找全局函数之前在封闭函数的符号表中查找变量名:

函数的执行引入了用于函数局部变量的新符号表.更确切地说,函数中的所有变量赋值都将值存储在本地符号表中; 而变量引用首先在本地符号表中查找,然后在封闭函数的本地符号表中查找,然后在全局符号表中查找,最后在内置名称表中查找.因此,全局变量不能直接在函数内赋值(除非在全局语句中命名),尽管可以引用它们.

"封闭功能"究竟是什么意思,何时使用?

我看到以下代码在调用时打印10

def parent_function():
    y=10
    def child_function():
        print y
    child_function()
Run Code Online (Sandbox Code Playgroud)

但是,单独调用child_function()会产生错误.是否经常使用封闭功能?

python

3
推荐指数
1
解决办法
5560
查看次数