将参数传递给 Python 中的内部函数

Passing parameter to inner function in Python

在 python 中学习范围时,我遇到了以下简单代码。我的疑问是如何将参数传递给函数中的 outer_varinner_var

def outerfunc(outer_var):
    def innerfunc(inner_var):
        return outer_var * inner_var
    return innerfunc

基本上,是的,就像@jonrsharpe 说的:这是因为闭包。

闭包 "close" 函数内的状态周围可以稍后使用。每次你 运行 outerfunc(),代码都会定义一个新版本的 innerfunc(),它可以访问当时传递的 outer_var

闭包使参数化装饰器起作用。