#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Comments """
# 修饰器无参数
def decorator(func):
def wrapper(*args, **kw):
print 'call %s():' % func.__name__
return func(*args, **kw)
return wrapper
@decorator
def shit(x):
print x
# 上述操作相当于 去掉@后的函数调用:shit = decorator(shit);
shit('22')
print "######################"
# 修饰器有参数
def decorator_first(param):
print param
def decorator_second(func):
def wrapper(*args, **kw):
print 'call %s():' % func.__name__
return func(*args, **kw)
return wrapper
return decorator_second
@decorator_first('11')
def shit(x):
print x
# 上述操作相当于 去掉@后的函数调用:shit = decorator_first('11')(shit);
shit('22')