人工智能(python)开发 —— 装饰器 decorators(提高篇)


装饰器 decorators(专业提高篇)

1、装饰器的定义
        装饰器是一个函数,主要作用是用来包装另一个函数或类
2、作用
        在不改变原函数名(或类名)的情况下改变被包装对象的行为
3、函数装饰器的定义
        函数装饰器是指装饰器是一个函数,传入的是一个函数,返回的也是一个函数
4、语法
        def 装饰器函数名(参数):
                语句块
                return 函数对象

        @装饰器函数名<换行>
        def 函数名(形参列表):
                语句块

5、示例

def mydeco(fn):
    def fx():
        print("fx函数被调用")
    return fx

# myfunc加了mydeco装饰器,等同于在myfunc创建之后调用
# myfunc = mydeco(myfunc)
@mydeco
def myfunc():
    print("函数myfunc被调用")

# 这样的写法可以用装饰器来代替
# 等同于
#   @mydeco
#   def myfunc()....

# myfunc = mydeco(myfunc)

myfunc()
注:装饰器只调用一次,后面再次调用就是调用的返回的函数


被装饰函数带有参数的装饰器

def msg_service(fn):
    print("装饰器函数被调用,并返回 原函数/修改后的功能(闭包)")
    def savemoney2(name,x):
        print("欢迎",name,"来银行,请取号!!!")
        fn(name,x)
        print(name,"办理了存",x,"元钱的业务,短信发送中")
    return  savemoney2 

@msg_service
def savemoney(name,x):
    print(name,"存钱",x,"元")

savemoney("小张",200)
savemoney("小灶",500)    
注:
        用到了闭包

       可用于计算/测试程序运行的时间


附录

        人工智能(python)—— 目录汇总


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值