#!/usr/bin/env python
__author__ = "lrtao2010" #python3.7 装饰器 #装饰器
'''
定义:本质就是一个函数,作用是为其他函数添加新的功能。
遵循的原则:
1、不改变被修饰函数的源代码(开放封闭原则);
2、为被装饰函数添加新功能后,不修改被修饰函数的调用方式。
'''
#装饰器=高阶函数 + 函数嵌套 + 闭包 #高阶函数
'''
定义:
1、函数接收的参数是一个函数名;
2、函数的返回值是一函数名;
3、满足上述条件任意一个,都称之为高阶函数
''' #函数嵌套
#在一个函数中再定义一个函数,并调用该函数 #闭包
#在一个作用域里放入定义的变量,相当于打了一个包 # import time
#
# def run_time(func):
# def wrapper():
# star_time = time.time()
# func()
# stop_time = time.time()
# print("运行时间是%s" %(stop_time - star_time))
# return wrapper
#
# @run_time
# #@ 语法糖 @run_time 等同于执行test=run_time(test),run_time(test)返回的是wrapper的地址
# def test():
# time.sleep(3)
# print('test run over')
#
# test() #test() 执行的是wrapper()
#
# test run over
# 运行时间是3.0000040531158447
#
# import time
#
# def run_times(func):
# def wrapper(*args):
# star_time = time.time()
# func(*args)
# stop_time = time.time()
# print("运行时间是%s" %(stop_time - star_time))
# return wrapper
#
# @run_times
# def add(*args):
# res=0
# for i in args:
# time.sleep(1)
# res+=i
# print(res)
# add(1,2,3,4,5,6,7,8,9,10)
#
#
# 运行时间是10.000013828277588

python3.7 装饰器的更多相关文章

  1. (转)Python3.5——装饰器及应用详解

    原文:https://blog.csdn.net/loveliuzz/article/details/77853346 Python3.5——装饰器及应用详解(下)----https://blog.c ...

  2. python3练习-装饰器

    在廖雪峰的官方网站学习装饰器章节时,初步理解类似与面向切面编程.记录一下自己的课后习题解法. 问题: 请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call ...

  3. Python3.5:装饰器的使用

    在Python里面函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数,简单来说函数也是变量也可以作文函数的参数 >>> def funA(): ... pr ...

  4. python3之装饰器

    1.装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处 ...

  5. python3之装饰器修复技术@wraps

    普通函数 def f(): """ 这是一个用来测试装饰器修复技术的函数 """ print("哈哈哈") if __n ...

  6. Python3中装饰器的使用

    较为复杂的装饰器使用: user,passwd = 'hjc',111111 def auth(type): print('auth type:',type) def outwrapper(func) ...

  7. python3 使用装饰器,及函数作为参数

    #装饰import typesdef shucai(n): print('蔬菜价格7') if type(n)==types.FunctionType: return n()+7 return n+7 ...

  8. 【python3】装饰器

    参考文章: 理解Python装饰器(Decorator) 关键点: 写装饰器一定要搞定楚函数名后面带小括号和不带小括号的含义.带小括号,表示调用这个函数,而不带小括号,则表示的是该函数引用地址 简单装 ...

  9. python3中装饰器的用法总结

    装饰器预备知识点 1 函数赋值给一个变量 函数名可以像普通变量一样赋值给另一个变量. def test(): print("i am just a test function") ...

随机推荐

  1. Python3基础(6)面向对象编程、异常处理

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  2. jdbc操作数据库的步骤

    package com.jckb; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  3. idea(2017.3)的安装及快捷键的配置

    一  破解安装步骤: 到IntelliJ IDEA的官网:www.jetbrains.com 然后找到下载的地方,选择自己电脑所匹配的下载安装包,这里我们选择收费版的下载 接着,点击安装包进行安装,按 ...

  4. 比例缩放 on() prop() 正则表达式

    $('#banner-section').css('height',$(window).width() / 1900 * 490 ); $(window).resize(function(){    ...

  5. NOIP2013Day1T3 表示只能过一个点

    •A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的 ...

  6. 淘宝H5移动端解决方案

    详细:http://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html ; (function(win, lib) { var doc ...

  7. 功放TAS5719耳机POP noise分析 对策

    驱动功放时,遇到POP noise 是常见的问题,以前遇到此问题,首先想到的对策就是mute the output.本人一直来对此种解法感觉不爽,心里不快.最近遇到开机时耳机有很强的POP,决定好好研 ...

  8. vue中使用setTimeout

    在vue的函数中使用setTimeout self.distroyTimeout = setTimeout(()=>{ self.initData() },1000) 这时清除setTimeou ...

  9. select into outfile

    语法格式如下: SELECT [列名] FROM table [WHERE 语句]         INTO OUTFILE '目标文件' [OPTION];   FIELDS TERMINATED ...

  10. MYSQL短索引

    优化MYSQL时,可以尽量使用短索引,如果只是为了提高读取的速度,可以优先使用聚合索引,把几个字段聚集在一起,当然缺点在于操作(写)的时候会降低效率,短索引一般都是开头几个字符基本不同的时候,可以考虑 ...