装饰器的作用:能在原来函数内部代码不修改的前提下,对它整体加功能
代码实战
装饰不带参函数,嵌套函数中无返回值
def start(func):
print("格式化前准备")
def inner():
print("开始备份数据")
func()
print("数据格式化完成")
return #嵌套函数无返回值可不写
return inner
@start
def abc():
print("备份数据中...")
if __name__ == '__main__':
abc() #相当于start(abc)
输出结果
格式化前准备
开始备份数据
备份数据中...
数据格式化完成
Process finished with exit code 0
代码实战2
装饰带参的函数,嵌套函数中有返回值
def start(func):
print("格式化前准备")
def inner(d):
print("开始备份数据")
func(d * 10)
print("数据格式化完成")
return func(d * 10)
return inner
@start
def abc(d):
print("备份数据中...",d)
if __name__ == '__main__':
abc(10)
输出结果
格式化前准备
开始备份数据
备份数据中... 100
数据格式化完成
备份数据中... 100
Process finished with exit code 0