Python笔记之装饰器(简单版)

一、目标

学习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 查看本文章

猜你喜欢

转载自blog.csdn.net/xoofly/article/details/89441099