python - Python中的嵌套函数

标签 python nested-function

我们可以使用这样的 Python 代码获得什么好处或影响:

class some_class(parent_class):
    def doOp(self, x, y):
        def add(x, y):
            return x + y
        return add(x, y)

我在一个开源项目中发现了这个,它在嵌套函数内部做了一些有用的事情,但除了调用它之外什么也没做。 (实际代码可以在 here 找到。)为什么有人会这样编码?在嵌套函数内部而不是在外部普通函数中编写代码有什么好处或副作用吗?

最佳答案

通常你这样做是为了 closures :

def make_adder(x):
    def add(y):
        return x + y
    return add

plus5 = make_adder(5)
print(plus5(12))  # prints 17

内部函数可以访问封闭范围内的变量(在本例中为局部变量 x)。如果您没有从封闭范围访问任何变量,它们实际上只是具有不同范围的普通函数。

关于python - Python中的嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589058/

相关文章:

javascript - 何时在 JavaScript 中嵌套函数?

python - 基于 QTextEdit 的编辑器中更大的 CSS 字体大小

python - 当django模型访问DB时

scope - 使用 C 预处理器来确定当前范围?

python - Python 中的属性未引发嵌套函数的 UnboundLocalError

python - 嵌套函数中的变量范围

javascript - 如何在 1-arg javascript 函数中使用 2 个参数?

python - 计算年份数据的逐月和逐年变化

python - undefined symbol : _ZN2cv3Mat10deallocateEv

python - 在 Python 中将类的实例追加到列表中会产生副本而不是引用