我们可以使用这样的 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/