澳门至尊网站-首页

您的位置:澳门至尊网站 > 免费资源 > python3 装饰器

python3 装饰器

2019-10-26 03:21

python3 装饰器

一、闭包

闭包的八个原则:函数内套有内层函数;内层函数援用外层函数定义的变量。

eg:

def outer():

    x=10

    def inner():

    print(x)

    return inner

二、装饰器

装饰器是为了在不转移原本函数源码的前提下,扩大效果而留存的。实践流程:在调用棉被服装饰器修饰的函数时,装饰器会先被调用,将被点缀函数的函数名传入装饰器函数,试行李装运饰器内层函数,内层函数会调用棉被服装饰函数,进而实现被点缀函数的实践,而充实的效劳在内层函数里写着,所以扩展的效果也兑现了。那样做的功利是,棉被服装饰的函数的调用方法不改变,进而堤防一着不慎满盘皆输的情景现身;未有变动棉被服装饰函数的源码,切合开放密闭原则。

在乎,装饰器函数必需是闭包函数。

eg:

装饰器函数:

import time
def show_time(f):
    def inner(*args,**kwargs):      #设定不定长参数,防止棉被服装饰函数有参数
        start_time=time.time()
        f(*args,**kwargs)
        time.sleep(3)
        end_time=time.time()
        print('spend_time=%s'%(end_time-start_time))
    return inner()

 

@show_time

def foo():           #被装饰器修饰的函数

    print('ok')

foo()#调用函数

生龙活虎旦供给向装饰器函数中传参则在装饰器函数外围在套黄金年代层外部函数。

eg2:

def outer(*args):

    def show_time(f):

          def inner(*args,**kwargs):

               pass

         return inner

return show_time

 

@outer(‘参数’)

def foo ():

    pass

 

foo()#调用函数

本文由澳门至尊网站发布于免费资源,转载请注明出处:python3 装饰器

关键词:

  • 上一篇:没有了
  • 下一篇:没有了