码迷,mamicode.com
首页 > 其他好文 > 详细

函数装饰器

时间:2019-02-18 01:33:52      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:wrap   简单   返回   int   out   return   size   开放封闭原则   一个   

# 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数
# 装饰器的作用
# 原则 :开放封闭原则
# 语法糖 :@
# 装饰器的固定模式

#不懂技术


import time
# print(time.time()) # 获取当前时间
# time.sleep(10) #让程序在执行到这个位置的时候停一会儿


# def timmer(f): #装饰器函数
# def inner():
# start = time.time()
# ret = f() #被装饰的函数
# end = time.time()
# print(end - start)
# return ret
# return inner
#
# @timmer #语法糖 @装饰器函数名
# def func(): #被装饰的函数
# time.sleep(0.01)
# print(‘老板好同事好大家好‘)
# return ‘新年好‘
# # func = timmer(func)
# ret = func() #inner()
# print(ret)
# 装饰器的作用 —— 不想修改函数的调用方式 但是还想在原来的函数前后添加功能
# timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用

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

# 封版

# def outer():
# def inner():
# return ‘inner‘
# inner()
#
# outer()

#装饰带参数函数的装饰器
# def timmer(f): #装饰器函数
# def inner(*args,**kwargs):
# #(1,2) /(1)
# start = time.time()
# ret = f(*args,**kwargs) #f(1,2) #被装饰的函数
# end = time.time()
# print(end - start)
# return ret
# return inner
#
# @timmer #语法糖 @装饰器函数名
# def func(a,b): #被装饰的函数
# time.sleep(0.01)
# print(‘老板好同事好大家好‘,a,b)
# return ‘新年好‘
#
# @timmer #语法糖 @装饰器函数名
# def func1(a): #被装饰的函数
# time.sleep(0.01)
# print(‘老板好同事好大家好‘,a)
# return ‘新年好‘
# # func = timmer(func)
# ret = func(1,2) #inner()
# ret = func(1,b = 2) #inner()
# print(ret)

# def wrapper(f): #装饰器函数,f是被装饰的函数
# def inner(*args,**kwargs):
# ‘‘‘在被装饰函数之前要做的事‘‘‘
# ret = f(*args,**kwargs) #被装饰的函数
# ‘‘‘在被装饰函数之后要做的事‘‘‘
# return ret
# return inner
#
# @wrapper #语法糖 @装饰器函数名
# def func(a,b): #被装饰的函数
# time.sleep(0.01)
# print(‘老板好同事好大家好‘,a,b)
# return ‘新年好‘

# def wrapper():
# def inner():
# pass
# return inner

def wrapper(func): #qqxing
def inner(*args,**kwargs):
ret = func(*args,**kwargs) #被装饰的函数
return ret
return inner

@wrapper #qqxing = wrapper(qqxing)
def qqxing():
print(123)

ret = qqxing() #inner



函数装饰器

标签:wrap   简单   返回   int   out   return   size   开放封闭原则   一个   

原文地址:https://www.cnblogs.com/Hi-Son/p/10393567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!