2020/1/18python装饰器(为多个功能添加一个相同功能)

python装饰器结构体:

def 函数装饰器名称(func):
    def 内嵌函数(*args,**kwargs):
    	需要添加的新功能
    	return func(*args,**kwargs)
    return 内嵌函数

用装饰器为系统的两个功能添加验证登陆的功能

def verify_permissions(func):
    def wrapper(*args,**kwargs):
    	print("验证权限")
    	return func(*args,**kwargs)
    return wrapper
   
@verify_permissions   #先去调用装饰器
def enter_background(loginId,pwd):
    print(loginId,pwd)
    print("进入后台系统....")

@verify_permissions  #先去调用装饰器
def delete_order(order_id):
    print("删除%d订单..."%order_id)

enter_background("zs",123)
delete_order(101)



def verify_account(func):
    def wrapper(*args,**kwargs):
    	print("验证账户")
    	return func(*args,**kwargs)
    return wrapper
 @verify_account
 def deposit(money):
     print("存款“,money)
 @verify_account
 def withdraw():
     print("取钱")
     return 10000
 
 deposit(5000)
 print(withdraw())



import time

def print_execute_time(func):
    def wrapper(*args, **kwargs):
        start_time=time.time()
        result=func(*args,**kwargs)
        execute_time=time.time()-start_time
        print("执行时间是:",execute_time)
        return result
     return wrapper
class Student:
    def __init__(self,name):
    	self.name=name
    @print_execute_time
    def study(self):
    	print("开始学习喽")
    	time.sleep(2)   #睡眠两秒 模拟学习了两秒
发布了18 篇原创文章 · 获赞 0 · 访问量 269

猜你喜欢

转载自blog.csdn.net/dongxieaitonglao/article/details/104017028