• python修饰器


    修饰器:

    简而言知就是修饰一个器,这个器被称之为修饰对象。

    这个修饰对象可以是一个函数,一个类...

    也就是说这个修饰器是在不改变原来的函数/类的情况下,对函数或者类进行功能的补充。

    利用一个嵌套函数,嵌套函数里面的一层写你修饰的功能,并且将要修饰的函数放在里面。最后return你所定义的函数(记住不要加括号,只要返回内存地址即可)

    如果需要调用这个修饰方法。那么只需要在你要修饰的函数的前面一行使用@函数#这里的函数是嵌套函数的函数名。

    如下案例(这个是修饰没有参数的):

     1 #!usr/bin/env python
     2 #encding:utf-8
     3 #by i3ekr
     4 
     5 import time
     6 def pro(func):
     7     def de():
     8         start_time = time.time()
     9         func()
    10         end_time = time.time()
    11         print("the fun run thime is %s"%(end_time-start_time))
    12     return de
    13 
    14 @pro
    15 def f1():
    16     time.sleep(3)
    17     print "this is f1..."
    18 
    19 f1()

     如下案例是修饰有参数的(嵌套函数的第二个函数使用*args,**kwargs,使用函数的也是直接*args,**kwargs):

     1 #!usr/bin/env python
     2 #encding:utf-8
     3 #by i3ekr
     4 
     5 import time
     6 
     7 def pro(func):
     8     def de(*args,**kwargs):
     9         start_time = time.time()
    10         func(*args,**kwargs)
    11         end_time = time.time()
    12         print("the func run time is %s"%(end_time-start_time))
    13     return de
    14 
    15 @pro
    16 def f1(name):
    17     time.sleep(3)
    18     print "start...[%s]"%name
    19 
    20 
    21 
    22 f1('aaaaaaa')
  • 相关阅读:
    PMP考试结束了,期待结果中。。。
    Windows Server 2008安装及配置Terminal Server
    CMMI分段式级别的易理解版本
    c# RoundUp函数
    管理学中的知名定律之阿尔布莱特法则
    Risk Categories
    如何躲开“责任”的逆袭
    一次失败的聚会
    【老孙随笔】属相影响你的职业前途吗?
    项目经理的超越(三)人际优先,做事上的超越
  • 原文地址:https://www.cnblogs.com/nul1/p/8909727.html
Copyright © 2020-2023  润新知