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

时间:2015-07-16 12:06:36

标签: python-3.x scope closures python-decorators

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

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

1 个答案:

答案 0 :(得分:1)

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

闭包在一个函数内“关闭”,可以在以后使用。每次运行outerfunc()时,代码都会定义innerfunc()的新版本,该版本可以访问当时传递的outer_var

闭包是使参数化装饰器工作的原因。