python基础7 ---python函数

python基础知识

一、闭包函数

  1、闭包函数的定义:在一个内部函数中,在对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

  2、闭包函数的特点:自带作用域和延迟计算

  补充:1.函数的作用域关系在函数定义阶段就已经固定,与调用位置无关。无论函数在何处调用,都需要回到定义阶段去找对应的作用域关系。

     2.globals:是把局部变量的值声明为全局变量的值。

      nonlocal:在一个内部函数中修改外部函数里的局部变量的值。

二、装饰器

  1、装饰器遵循的是开放封闭原则:对扩展是开放的对修改是封闭的。

  2、装饰器的本质是:装饰器可以是任意可调用的对象,被装饰的对象也可以是任意可调用的对象。(装饰器本质就是函数,功能就是为其他函数添加新功能。)

  3、装饰器的功能:在不修改被装饰对象源代码以及调用方法的前提下为其添加新功能。

  4、装饰器的原则:不修改源代码,不更改源代码的调用方式。

  5、装饰器的目的:是为了添加新功能

  6、装饰器语法:在被装饰对象的正上方的前一行@装饰器名称。

  7、如果有多个装饰器,加载顺序是从下到上,执行顺序是从上到下。

 三、高阶函数

  1、高阶函数定义:函数接受的参数是个函数名,或者是函数的返回值是个函数名,满足其中一条就是高阶函数。

  2、高阶函数总结:

  当函数接收的参数是一个函数名                      当函数的返回值是一个函数名
   作用:在不修改函数源代码的前提下,为函数添加新功能,            作用:不修改函数的调用方式
   不足:会改变函数的调用方式                        不足:不能添加新功能
 四、补充:

   1、装饰器=高阶函数+函数嵌套+闭包                无参装饰器=高级函数+函数嵌套

   2、补充1:

    from urllib.request import urlopen
    print(urlopen('http://www.xiaohua100.cn/').read())
    print(urlopen(
'https://www.python.org').read())

     from functools import wraps

posted @ 2017-06-14 15:36  mx轩  阅读(221)  评论(0编辑  收藏  举报