python的装饰器应该可以被称为函数的加强,也就是增加一个函数的功能
这里,就以一个非常简单的例子来说明
#装饰器
def bar(func):
print "before return func"
return func
def func():
print "calling func"
f = bar(func)
f()
执行结果:before return func
calling func
这是最原始的写法,其原理也是这样的
而下面这种是一处语法糖写法,和Java中的注解比较相似
@bar
def func():
print "calling func"
func()
执行结果:before return func
calling func
Python中内置的装饰器有三个: staticmethod、classmethod 和property
staticmethod 是类静态方法,其跟成员方法的区别是没有 self 指针,并且可以在类不进行实例化的情况下调用,下面是一个实例,对比静态方法和成员方法
classmethod 与成员方法的区别在于所接收的第一个参数不是 self 类实例的指针,而是当前类的具体类型
property 是属性的意思,即可以通过通过类实例直接访问的信息

本文介绍了Python装饰器的基本概念和使用方法,通过实例演示了如何利用装饰器增强函数功能。此外,还介绍了Python内置的三种装饰器:staticmethod、classmethod和property,并通过示例展示了它们的应用场景。
9612

被折叠的 条评论
为什么被折叠?



