是否可以在函数内嵌套函数?如果是这样,它有什么用途?我在下面有一些示例代码来说明我的意思。
def theFunction():
print "This is a function"
def functionception():
print "Bad inception joke...."
再一次,这可能吗?如果是这样,它的用途是什么,以及它是如何使用的?
答案 0 :(得分:3)
是的,你可以。
你可以让外部函数对传递给外部函数的变量进行一些边界条件检查,并传递"有效/消毒的"变量到内部函数做实际的处理/操作。这实际上是装饰者的工作方式。
此博客详细解释了外部函数内部函数组合在装饰器中的作用 - http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/
答案 1 :(得分:2)
是的,这是可能的,并且经常在装饰其他功能时使用,例如
def memo(f):
cache = {}
def func(*args):
if args not in cache:
cache[args] = f(*args)
return cache[args]
return func
使用示例:
@memo
def memoized_func(some_arg):
return some_arg ** 2
这里内部函数func
用于包装参数函数f
,提供附加功能(在这种情况下保存以前计算的结果)。