博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 装饰器
阅读量:4595 次
发布时间:2019-06-09

本文共 900 字,大约阅读时间需要 3 分钟。

# _*_ coding:utf-8 _*_

'''
#装饰器decorator就是一个返回函数的高阶函数

def outer(fun):

    def wrapper():
        print('call %s:()' %fun.__name__)
        fun()
    return wrapper
#执行@outer相当于outer(Func1),调用Func1函数的时候变成了装饰器返回的函数wrapper()
#在eclipse使用Variables查看变量
@outer
def Func1():
    print('func1')

   

 

   

Func1()

'''

'''
#原函数加参数的情况;原函数有返回值的情况
def outer(fun):
    def wrapper(arg):
        print('call %s:()' %fun.__name__)
        result = fun(arg)
        return result
    return wrapper
@outer
def Func1(arg):
    print('func1',arg)
    return 'return'

'''

'''
Func1 =
    def wrapper(arg):
        print('call %s:()' %fun.__name__)
        result = fun(arg)
        return result
'''
'''
a = Func1('qlong')
print(a)

'''

'''

#装饰器有参数
def outer(text):
    def decorator(func):
        def wrapper():
            print(text,'装饰器带参数')
            func()
        return wrapper
    return decorator

@outer('execute')
def Func1():
    print('func1')
   
Func1()

#注意wrapper()函数平行的语句就返回wrapper;decorator函数平行语句就返回

#decorator

'''

转载于:https://www.cnblogs.com/qlong/p/6271516.html

你可能感兴趣的文章
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端...
查看>>
Python学习笔记
查看>>
unshift()与shift()
查看>>
使用 NPOI 、aspose实现execl模板公式计算
查看>>
行为型模式:中介者模式
查看>>
How to Notify Command to evaluate in mvvmlight
查看>>
33. Search in Rotated Sorted Array
查看>>
461. Hamming Distance
查看>>
Python垃圾回收机制详解
查看>>
{面试题1: 赋值运算符函数}
查看>>