python 装饰器

import time
from functools import wraps
#装饰器
def out(func):                  #闭包函数变量
    @wraps(func)                #伪装被修饰函数的所有属性
    def chag(*args,**kwargs):  #装饰部分1
        #func=date
        start=time.time()      #装饰部分1
        func(*args,**kwargs)    #被装饰对象,该值威威变量
        stop=time.time()        #装饰部分1
        print(stop-start)       #装饰部分1
    return chag                 #返回内存地址
@out #语法糖处于被装束函数的顶上方 dat=out(date)                  #将被装饰对象重新命名变量
def date(x,y):
    """被修饰函数"""
    time.sleep(6)
    print('warting...: %s %s' %(x,y))
print(help(date))
print(date)

date(2,3)

def op(func):
    def wrp(*args,**kwargs):
        #1、调用原函数
        #2、为其增加新功能
        name=input('name id:').strip()
        pwd=input('pawss id:').strip()
        if name=='zxt' and pwd =='110':
            print('yes,doing.....')
            res=func(*args,**kwargs)
            return res
        else:
            print('again')
    return wrp

@op
def info(inter):
    print(inter)

info('sa')


def n1(fu):#闭包
    def n2(*args,**kwargs):
#1、调用原函数,2、添加新功能
        ful=fu(*args,**kwargs)
        return ful #返回内存地址
    return n2 #返回内存地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值