开放封闭原则:在不修改源代码及调用方式,对功能进行额外添加就是开放封闭原则
装饰(额外功能) 器:工具(函数)
# print(time.time()) #时间戳,小数
import time
def func():
time.sleep(1)
print("这是小刚写的功能")
def func():
time.sleep(1)
print("这是小红写的功能")
def index():
time.sleep(2)
print("这是小明写的功能")
def times(func): #func == index 函数内存地址
def foo():
start_time = time.time() #时间戳,被装饰函数执行前干的事
func() #fun == index ,后面加括号就是调用函数
print(time.time()-start_time)#被装饰函数执行后干的事
return foo
index = time(index) #index== foo内存地址
index() #index() == foo ()
func = time(func)
func()
python帮咱们做的一个东西,语法糖
要将语法糖放在装饰器的函数正上方
# def warpper(f):
# def inner():
# print("111")
# f()
# print("222")
# return inner
#
# @warpper # func = warpper(func)
# def func():
# print("被装饰的函数1")
#
# @warpper # index = warpper(index)
# def index():
# print("被装饰的函数2")
#
# func()
# index()
# def warpper(f):
# def inner(*args,**kwargs):
# print("被装饰函数执行前")
# ret = f(*args,**kwargs)
# print("被装饰函数执行后")
# return ret
# return inner
#
# @warpper
# def func(*args,**kwargs):
# print(f"被装饰的{args,kwargs}")
# return "我是func函数"
#
# @warpper
# def index(*args,**kwargs):
# print(11111)
#
# print(func(1,2,3,4,5,6,7,8,a=1))
原文:https://www.cnblogs.com/heyulong1214/p/11462929.html