在函数中嵌套函数

2024-05-17 18:46:44 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以在函数中嵌套函数?如果是,它有什么目的?下面有一些示例代码来说明我的意思。你知道吗

def theFunction():
    print "This is a function"
    def functionception():
        print "Bad inception joke...."

再说一次,这可能吗?如果是的话,它有什么用途,如何使用?你知道吗


Tags: 函数代码目的示例isdeffunctionthis
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,提供额外的功能(在本例中保存先前计算的结果)。你知道吗

是的,你可以。你知道吗

您可以让外部函数对传递给外部函数的变量执行一些边界条件检查,并将“有效/净化”变量传递给内部函数以执行实际的处理/操作。实际上这就是装饰师的工作方式。你知道吗

这个博客详细解释了decorators中外部函数和内部函数的组合是如何工作的-http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/

相关问题 更多 >