zoukankan      html  css  js  c++  java
  • 装饰器

    装饰器:本质是函数,用来装饰其他函数,为其他函数添加附加功能

    原则:不能修改被装饰函数的源代码及调用方式

    实现装饰器的知识点:

    1、函数即“变量”

    2、高阶函数

      a、把一个函数名当作实参传给另一个函数

      b、返回值中包含函数名

    3、嵌套函数


      不带参数的装饰器

     1 import time
     2 
     3 def timer(func): 
     4     def ff(*args,**kwargs):
     5         start_time = time.time()
     6         func(*args,**kwargs)
     7         end_time = time.time()
     8         print('run times {}'.format(end_time - start_time))
     9     return ff
    10 @timer
    11 def test1():
    12     time.sleep(3)
    13     print('in the test1')
    14 
    15 test1()

     带参数的装饰器

     1 import time
     2 
     3 def timer(type='sort'): #装饰器
     4     def outer(func):
     5         def ff(*args,**kwargs):
     6             if type == 'sort':
     7                 start_time = time.time()
     8                 func(*args,**kwargs)
     9                 end_time = time.time()
    10                 print('run times {}'.format(end_time - start_time))
    11             elif type == 'long':
    12                 print('long')
    13         return ff
    14     return outer
    15 @timer()
    16 def test1():
    17     time.sleep(3)
    18     print('in the test1')
    19 
    20 test1()
  • 相关阅读:
    Rocket
    Rocket
    Rocket
    Rocket
    POJ 1849 树的直径 Two
    SGU 495 Kids and Prizes
    HDU 4336 概率DP 状压
    HDU 4089 && UVa 1498 Activation 带环的概率DP
    SGU 149 树形DP Computer Network
    暑假集训刷题记录
  • 原文地址:https://www.cnblogs.com/gaowy/p/9723897.html
Copyright © 2011-2022 走看看