python装饰对象_python装饰器

一:开放封闭原则,对扩展是开放的,对修改是封闭的

二:装饰器,装饰器本质可以是任意可调用的对象,被装饰的对象也可以是任意可调用对象

装饰器的功能是:

在不修改被装饰对象源代码以及调用方式的前提下为其添加新功能

原则:

1.不修改源代码

2.不修改调用方法

目标:添加新功能

装饰器的语法:在被装饰对象的正上方的单独一行。@装饰器名字

import time

import random

#装饰器

def timmer(func):#func=index

#func=index

def wrapper():

start_time=time.time()

func()#index

stop_time=time.time()

print('run time is %s' %(stop_time-start_time))

return wrapper

#被装饰函数

@timmer #index=timer(index)

def index():

time.sleep(random.randrange(1,5))

print('welecome to index page')

@timmer

def home():

time.sleep(random.randrange(1, 3))

print('welecome to HOME page')

# index=timmer(index) #index=wrapper

# index() #wrapper() @timmer等于这两步

index()

home()

可以加多个装饰器,计算顺序是自下而上,自上而下运行

装饰器修订版本

import time

import random

#装饰器

def timmer(func):

def wrapper(*args,**kwargs):

start_time=time.time()

res=func(*args,**kwargs)

stop_time=time.time()

print('run time is %s' %(stop_time-start_time))

return res

return wrapper

#被装饰函数

@timmer

def index():

time.sleep(random.randrange(1,5))

print('welecome to index page')

res1=index()

print(res1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值