首页 > 其他 > 详细

装饰器初识

时间:2019-07-23 21:11:17      阅读:103      评论:0      收藏:0      [点我收藏+]

装饰器

开放封闭原则

此原则的基本思想是:

  • Open ( Open for extension ) 对扩展开放,模块的行为是灵活的。
  • Closed ( Closed for modification ) 对模块进行扩展的时候,不能影响已有的程序模块。

装饰器定义:

在不改变原被装饰的函数的源代码以及调用方式下,为其添加额外的功能。

无参数版

def wrapper(f):
    def inner():
        f()
    return inner

@wrapper
def func():
    print(1)
func()

技术分享图片

有参数版

import time
def wrapper(f):
    def inner(*args,**kwargs):
        "被装饰前"
        start_time = time.time()
        f(*args,**kwargs) # func("alex")
        print(time.time() - start_time)
        "被装饰后"
    return inner  # 切记不要加括号

@wrapper  # func = wrapper(func)
def func(*args,**kwargs):
    print(f"这是{args}函数,李业还是不行")
    time.sleep(2) #模拟网络延时
@wrapper  # foo = wrapper(foo)
def foo(*args,**kwargs):
    print(f"这是{args}函数,常鑫穿齐*小短裤")
    time.sleep(3) #模拟网络延时
func("alex","sur")
foo("alex","sur")

技术分享图片

装饰器初识

原文:https://www.cnblogs.com/lifangzheng/p/11234441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!