这篇文章主要介绍了python中的装饰器详解,本文讲解了装饰器语法、简单装饰器、带内嵌函数装饰器、带参数的装饰器等内容,需要的朋友可以参考下
在了解装饰器的之前一定要先了解函数作为参数传递, 什么是函数内嵌,请参考我之前写的博客函数简介
因为在python里面,函数也是对象,也可以作为参数进行传递.python装饰器本质也是一种特殊函数,它接收的参数是函数对象,然后动态地函数参数添加额外的功能,而不用修改原有的函数对象.python装饰器传入的参数是函数,返回的值也是函数!
python装饰器思想有点类似设计模式的装饰模式, 其意图是动态地给函数对象添加额外的功能.比如像增加日志打印的功能,有点面向切面编程(AOP)的感觉.
装饰器语法
以@开头,接着后面跟着的是装饰器的名字和可选的参数.装饰器语法是一种语法糖.
格式如下
代码如下:
@decomaker(deco_args)
def foo(func_opt_args)
def foo(func_opt_args)
可以组合,等价于foo = g(f(foo))
代码如下:
@g
@f
def foo():
statement
@f
def foo():
statement
简单装饰器
实例
代码如下:
#!/usr/bin/python
def deco(func):
print ‘start’
func()
print ‘end’
return func
def deco(func):
print ‘start’
func()
print ‘end’
return func
@deco
def foo():
print ‘In foo’
foo()
foo()
以上就是python中的装饰
来源gaodai.ma#com搞##代!^码网
器详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!