装饰器 装饰器: 开放封闭原则: 1。代码扩展进行开放 2。修改源代码是封闭的 在不修改源代码及调用方式,对功能进行额外添加就是封闭原则 def index (): print("这是个主页") index() 修饰(额外功能) 器:工具(函数) import time def func(): time.sleep(1) print("这是小刚写的功能") def index(): time.sleep(2) print("这是小刚写的功能") def red(): time.sleep(3) print("这是小红写的功能") start_time = time.time() index() print(time.time() - start_time) start_time = time.time() func() print(time.time() - start_time) start_time = time.time() red() print(time.time() - start

开放封闭原则:

1。代码扩展进行开放

2。修改源代码是封闭的

在不修改源代码及调用方式,对功能进行额外添加就是封闭原则

def index ():

index()

修饰(额外功能) 器:工具(函数)

import time

def func():

time.sleep(1)

def index():

time.sleep(2)

def red():

time.sleep(3)

start_time = time.time()

index()

print(time.time() - start_time)

start_time = time.time()

func()

print(time.time() - start_time)

start_time = time.time()

red()

print(time.time() - start_time)

import time

def index():

time.sleep(2)

def func():

time.sleep(3)

def red():

time.sleep(4)

print('这是建伟写的功能')

def times(func):

start_time = time.time()

func()

print(time.time()-start_time)

times(index)

times(func)

times(red)

import time

def index():

time.sleep(3)

def func():

time.sleep(1)

def red():

time.sleep(2)

def times(func):

start_time = time.time() # 时间戳

func()

print(time.time() - start_time)

f = index

index = times

index(f)

f1 = func

func = times

func(f1)

f2 = red

red = times

red(f2)

第一版装饰器

import time

def func():

time.sleep(1)

def red():

time.sleep(1)

def index():

time.sleep(2)

def times (func):

def foo ():

start_time =time.time()

func ()

print(time.time() - start_time)

return foo

index = times(index)

index()

func = times(func)

func()

red = times(red)

red()

def func():

def warpper(f):

def inner():

f()

return inner

func = warpper(func)

func()

def warpper(f):

def inner():

f()

return inner

@warpper # func = warpper(func)

def func():

@warpper # index = warpper(index)

def index():

func()

def warpper(f):

def inner():

f()

return inner

@warpper # func = warpper(func)

def func():

@warpper # index = warpper(index)

def index():

# python帮咱们做的一个东西,语法糖

func()

index()

def warpper(f):

def inner(*args,**kwargs):

ret = f(*args,**kwargs)

return ret

return inner

@warpper#func = warpper(func)

def func(*args,**kwargs):

# func(1,2,3,4,5,6,7,8,a=1)

print(func(1,2,3,4,5,6,7,8,a=1))

@warpper

def index(*args,**kwargs):

print(11111)

index()