OOP中闭包属性背后的逻辑是什么?

我对面向对象编程语言中的闭包概念感到怀疑。因此,按照定义,闭包是内部函数可以访问自由变量(在外部函数中创建的变量)的概念。

我想知道,为什么内部函数具有此属性?面向对象编程语言的功能背后的逻辑是什么?

附言我正在用Python学习OOP ... 如果有人有任何想法,请帮助:) 谢谢

评论
本明远
本明远

这使您可以编写充当“功能工厂”的功能。因此,您可以使用一些参数调用外部函数,该参数将返回内部函数(请注意,至关重要的是,它不会调用内部函数)。

例如

def times_n(n):
    def func(x):
        return x*n
    return func 

这将返回一个函数,该函数然后将接受参数,并将它们乘以传递给外部函数的“ n”:

例如。

times_three = times_n(3)

times_three(4) => returns 12
点赞
评论