• 装饰器


    一  函数对象

    函数时第一类对象:指的是函数可以当做数据传递

    ①可以被引用

    ②可以被当做函数的参数传入

    ③ 可以当做函数的返回值

    ④可以当做容器的元素

     二  函数嵌套

    1、函数的嵌套调用

    2、 函数的嵌套定义

    三 名称空间与作用域

    1、名称空间指的是: 存放名字与值绑定关系的地方

    1)内置名称空间:python解释器内置的名字。max,len等(python解释器启动就有)

    2)全局名称空间 :文件级别定义的名字  (执行python文件时生效)

    3)局部名称空间: 函数内部定义的名字(在函数调用时生效,调用结束后失效)

     加载顺序: 内置--全局--局部名称空间

    访问名字顺序:  局部--全局--内置

     

    2、全局作用域(全局范围): 内置名称空间与全局名称空间的名字,全局存活,全局有效,globals()

         局部作用域(局部范围):  局部名称空间的名字,临时存活,临时有效  locals()

     3、打破函数层级限制来调用函数

    4、函数的作用关系在函数定义阶段就已经固定了,与调用无关

     

    四 闭包函数

     定义在函数内部的函数,该函数的函数体代码包含对外部作用域(而不是对全局作用域)名字的引用,通常将闭包函数用return返回,可以在任意位置使用

     

    五 装饰器

    1、 开放封闭原则: 对扩展开放,对修改封闭

    2、装饰器: 装饰他人的,器指的是任意可调用对象,现在的场景--函数

    3 、原则:①不修改被装饰对象的源代码

                    ②不修改被装饰对象的调用方式

    装饰器的目的:在遵循1,2,的前提下为被装饰的对象添加新功能

    源代码

     新功能:统计函数的执行时间

     

     4、装饰器的语法

    问题一: 假如函数index有返回值的问题

     

    问题二; index()函数有参数的情况下

     5、以上可以看做是无参装饰器,下面来有参装饰器

    源代码:

    为index实现授权功能

    修订版本,有参装饰器

    增加了engine变量

    6、并列多个装饰器

     7、给函数加上注释

  • 相关阅读:
    MATLAB数据处理快速学习教程
    dev -c++ 快捷键
    SQL 通配符
    如何利用SQL语句求日期的时间差值,并汇总网上的一些信息
    matlab使用常犯的错误
    matlab中将矩阵按照行打乱顺序的一个例子
    我所认识的PCA算法的princomp函数与经历 (基于matlab)
    java 读取本地的json文件
    Oracle数据库——SQL基本查询
    Oracle数据库——表的创建与管理
  • 原文地址:https://www.cnblogs.com/yuguangwei/p/8065106.html
Copyright © 2020-2023  润新知