Python的函数嵌套的使用方法

yipeiwu_com6年前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在每个字符后添加空格的实例

实例如下所示: #!/usr/bin/env Python # coding=utf-8 file = open("chinese1.txt",'r') file2 = open(r...

python实现按长宽比缩放图片

使用python按图片固定长宽比缩放图片到指定图片大小,空白部分填充为黑色。 代码 # -*- coding: utf-8 -*- from PIL import Image c...

django1.11.1 models 数据库同步方法

在django1.9之前,数据库同步只需要一条命令:python manage.py syncdb 在djang1.9以后,数据库同步执行指令如下: 同步数据库接口(注意需要切换至pyt...

Python命令行参数解析工具 docopt 安装和应用过程详解

什么是 docopt? 1、docopt 是一种 Python 编写的命令行执行脚本的交互语言。 它是一种语言! 它是一种语言! 它是一种语言! 2、使用这种语言可以在自己的脚本中,添...

用Python中的turtle模块画图两只小羊方法

用Python中的turtle模块画图两只小羊方法

这两天在一个公众号里看到好玩的turtle库,今天来学习一下。 turtle.circle(radius, extent=None, steps=None) 描述: 以给定半径画圆 参数...