PYTHON---函数装饰器

本文深入探讨了函数装饰器的概念和应用,解释了如何在不修改原函数的情况下为其添加额外功能,通过具体示例展示了装饰器的基本语法和使用场景,包括错误处理、权限验证等常见需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数装饰器

"""

装饰器:

"在不改变原函数的基础上,给函数增加功能"

把一个函数当作参数,返回一个替代版的函数

本质上:返回函数的函数

"""

 

 

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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值