我正在尝试编写一个可以定义函数的函数。
我试过这个:
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 未定义,因此这显然不是执行此操作的方法。
有谁知道如何做到这一点?
谢谢。
您的代码失败的原因与以下代码抱怨未定义的原因完全相同:i
def integer_writer():
i = 0
integer_writer()
i
Run Code Online (Sandbox Code Playgroud)
i是函数中的局部变量integer_writer,new_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要接受一些参数,并且如果这些参数在它返回的函数中使用,那么你就可以做生意了。
| 归档时间: |
|
| 查看次数: |
3683 次 |
| 最近记录: |