Python的函数嵌套的使用方法

yipeiwu_com7年前Python基础

例子:

复制代码 代码如下:

def re_escape(fn):
    def arg_escaped(this, *args):
        t = [isinstance(a, VerEx) and a.s or re.escape(str(a)) for a in args]
        return fn(this, *t)
    return arg_escaped

函数嵌套
python允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义。为什么?因为函数是用def语句定义的,凡是其他语句可以出现的地方,def语句同样可以出现。
像这样定义在其他函数内的函数叫做内部函数,内部函数所在的函数叫做外部函数。当然,我们可以多层嵌套,这样的话,除了最外层和最内层的函数之外,其它函数既是外部函数又是内部函数。

使用方法

复制代码 代码如下:

spam = 99
def tester():
    def nested():
        global spam
        print('current=',spam)
        spam += 1
    return nested

#注意:打印 print 那行的代码调用是tester()()
#而不是tester().nested()

相关文章

Python reduce()函数的用法小结

Python reduce()函数的用法小结

reduce()函数也是Python内置的一个高阶函数。 reduce() 格式: reduce (func, seq[, init()]) reduce()函数即为化简函数,它的执行过...

python从网络读取图片并直接进行处理的方法

本文实例讲述了python从网络读取图片并直接进行处理的方法。分享给大家供大家参考。具体实现方法如下: 下面的代码可以实现从网络读取一张图片,不需要保存为本地文件,直接通过Image模块...

微信跳一跳python代码实现

本文实例为大家分享了python微信跳一跳的具体代码,供大家参考,具体内容如下 部分代码分享: wechat_jump.py from __future__ import print...

pycharm中连接mysql数据库的步骤详解

pycharm中连接mysql数据库的步骤详解

前言 最近在新的环境配置pycharm的项目时候,发现pycharm不能连接到mysql数据库。由于安了java环境但是还没配置相关的库,并且jetbrains家的IDE一般都是java...

详解django+django-celery+celery的整合实战

详解django+django-celery+celery的整合实战

本篇文章主要是由于计划使用django写一个计划任务出来,可以定时的轮换值班人员名称或者定时执行脚本等功能,百度无数坑之后,终于可以凑合把这套东西部署上。本人英文不好,英文好或者希望深入...