1.一层修饰符
1)简单版,编译即实现
在一个函数上面添加修饰符 @另一个函数名 的作用是将这个修饰符下面的函数作为该修饰符函数的参数传入,作用可以有比如你想要在函数前面添加记录时间的代码,这样每个函数调用时就能够知道是什么时候调用的,但是你不想手动地去给每个函数添加,那么就能够使用该修饰符实现这样的功能,下面举例说明:
#coding=UTF-8
import time
def showTime(fn):
print('calling time : ', time.time())
fn() #调用传入的参数
@showTime
def function1():
print('running function1 ')
@showTime
def function2():
print('running function2 ')
直接运行上述代码,返回:
calling time : 1567076890.053299 running function1 calling time : 1567076890.0533462 running function2
但是发现showTime()函数这样子写,即使将fn()行调用代码删除,也会在编译时就输出时间信息:
import time
def showTime(fn):
print('calling time : ', time.time())
@showTime
def function1():
print('running function1 ')
@showTime
def function2():
print('running function2 ')
返回:
calling time : 1567077493.420067 calling time : 1567077493.420131
而且这个时候如果调用function1()会报错,即代码如下:
# coding: utf-8
# Author: shelley
# 2020/9/24,9:47
import time
def showTime(fn):
print('calling time: ', time.time())
fn()
# 也就是showT