python装饰器使用一例

最近在学习廖雪峰老师的Python教程,受益匪浅。接下来写一下学习总结,以便可以随时翻阅。

def get(path):
    def wrapper(func):
        func.__route__ = path
        func.__method__ = 'GET'
        return func
    return wrapper


@get('/')
def home():
    print 'home'


@get('/login')
def login(user, password):
    print 'login : %s %s'%(user, password)

funcs = [home, login]
for f in funcs:
    print f.__route__, f.__method__

home()

login('test', '123')

首先,这个是带参数的装饰器,参数为请求的路径。

然后,在装饰器中加入的两个属性,是在定义了函数后就已经加入到函数中了,即使函数并没有被调用执行。

最简单的装饰器可以写成这样:

def decorator(func):
    print 'decorator'
    return func

@decorator
def func1():
    print 'func1'

执行后,输出

>>>decorator

上例中的装饰器是无参装饰器,文章开始的例子是有参装饰器。区别在于,有参装饰器比无参装饰器多封装一层。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值