一、目标
学习Python的装饰器的用法,在不改变原有方法代码的情况下,去改变原来代码的内容
二、试验平台
windows7 , python3.7
三、先通过一个例子了解。
解析:原有有一个函数叫func1,能打印一句话。现在想要执行这个方法前,先执行其他任务。(这还不叫装饰器哈,继续往下看)
def func1():
print("超级飞侠勇闯天涯, hello world !")
def zhuangshiqi():
print("这是装饰器打印的内容.....")
func1()
zhuangshiqi()
'''
输出结果:
这是装饰器打印的内容.....
kahn, hello world !
'''
四、在看一个更进一步的例子
解析:将函数func1当成一个参数传进另外一个函数zhuangshiqi()里去,同样达到了,不改变func1的代码,实现装饰的目的,但这也还不是装饰器,继续往下看例子。
ef func1():
print("超级飞侠勇闯天涯, hello world !")
def zhuangshiqi(xArgs):
print("这是装饰器打印的内容.....")
xArgs()
zhuangshiqi(func1)
'''
输出结果:
这是装饰器打印的内容.....
kahn, hello world !
'''
五、再来个例子,开始有点绕了,
def func1():
print("kahn超级飞侠勇闯天涯, hello world !")
def zhuangshiqi(xArgs):
def zsqInner():
print("这是装饰器打印的内容.....")
xArgs()
zsqInner()
zhuangshiqi(func1)
'''
输出结果:
这是装饰器打印的内容.....
kahn超级飞侠勇闯天涯, hello world !
'''
六、超级简单的python装饰器例子来了
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:kahn
def func1():
print("kahn超级飞侠勇闯天涯, hello world !")
def zhuangshiqi(xArgs):
def zsqInner():
print("这是装饰器打印的内容.....")
xArgs()
return zsqInner
kahn = zhuangshiqi(func1)
kahn()
'''
输出结果:
这是装饰器打印的内容.....
kahn超级飞侠勇闯天涯, hello world !
'''
KAHN-2019年4月21日22:58:30
扫描二维码关注公众号,回复:
6080103 查看本文章