Python 装饰器,开放封闭原则
装饰器:装饰,装修,体验更加,增加功能
开放封闭原则: 开放:对代码的拓展开放
关闭:对源码的修改关闭
装饰器:完全遵循开放封闭原则
在不改变原函数的代码以及调用方式下,为其增加新的功能
装饰器 就是一个函数 :
# -*- coding: utf-8 -*-
import time
def login():
time.sleep(1)
print('123132')
def timecheck(func):
def inner():
oldtime = time.time()
func()
newtime = time.time()
print((newtime-oldtime))
return inner
login = timecheck(login) #不改变源代码 不改变调用方式 新增 所消耗时间的输出
login()
4.python 对装饰器进行了优化,提出了语法糖的概念
# -*- coding: utf-8 -*-
import time
#timecheck装饰器
def timecheck(func):
def inner():
oldtime = time.time()
func()
newtime = time.time()
print((newtime-oldtime))
return inner
@timecheck #timecheck装饰器
def login():
time.sleep(1)
print('123132')
login()
装饰器 添加参数,返回值:
# -*- coding: utf-8 -*- import time #timecheck装饰器 def timecheck(func): def inner(*args,**kwargs): oldtime = time.time() revar = func(*args,**kwargs) newtime = time.time() print((newtime-oldtime)) return revar return inner @timecheck def login(name,date): time.sleep(1) print(f'welcome {name},{date}') return 'loginover' a = login('panda',6666) print(a)
标准装饰器:
#标准装饰器:
def wrapper(func):
def inner(*args,**kwargs):
#添加额外的功能
re = func(*args,**kwargs)
#添加额外的功能
return re
@wrapper
def ...