函数装饰器
"""
装饰器:
"在不改变原函数的基础上,给函数增加功能"
把一个函数当作参数,返回一个替代版的函数
本质上:返回函数的函数
"""
def func1():
print 'have a nice day!'
def func2():
print 'good luck!'
def outer(func):
def inner():
print '*********'
func()
print '&&&&&&&&&&&&'
return inner
func1 = outer(func1)
func1()
def say(age):
print 'man is %d years old' % age
def outer(func):
def inner(age):
if age < 0:
age = 0
func(age)
return inner
# "化妆过的函数"
say = outer(say)
# 其实是调用的新的函数
say(-10)
def desc(fun):
def add_info():
print '中秋快乐'
fun()
print '欢迎你'
return add_info
# 语法糖
@desc
def login():
# print '中秋快乐...'
print 'login....'
# print '欢迎你...'
@desc # login = desc(login)
def logout():
print 'logout....'
@desc
def savemoney():
print '存钱...'
@desc
def transferMoney():
print '转账....'
# def ..
login()
logout()
savemoney()
transferMoney()