Python:在函数内部定义函数

Cod*_*ode 1 python function

我正在尝试编写一个可以定义函数的函数。

我试过这个:

def function_writer():
    print "I am a function writer"  

    def new_function():
        print "I am a new function"
             pass
    pass

function_writer()
new_function()
Run Code Online (Sandbox Code Playgroud)

但是,我的调试器抱怨 new_function 未定义,因此这显然不是执行此操作的方法。

有谁知道如何做到这一点?

谢谢。

Ste*_*sop 5

您的代码失败的原因与以下代码抱怨未定义的原因完全相同:i

def integer_writer():
    i = 0

integer_writer()
i
Run Code Online (Sandbox Code Playgroud)

i是函数中的局部变量integer_writernew_function也是函数中的局部变量function_writer

您可以执行以下操作:

def function_writer():
    print "I am a function writer"  

    def new_function():
        print "I am a new function"

    return new_function

new_function = function_writer()
new_function()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,似乎没有太多意义(就像定义一个总是返回的函数通常没有太多意义一样0),但是如果function_writer要接受一些参数,并且如果这些参数在它返回的函数中使用,那么你就可以做生意了。