python3.5 装饰器详解

装饰器:
定义:本质是函数,(装饰其他函数),为其他函数添加附加功能
原则:1、不能修改被装饰函数的源代码
2、不能修改被装饰的函数的调用方式
实现装饰器所需:
1、函数即变量 :函数名=“函数体”
2、高阶函数
a;把一个函数名当做实参传给另一个函数
(在不修改被装饰函数的前提下为其添加功能)
b: 返回值中包含函数名(不修改调用方式)
3、嵌套函数
+++++++++++++
import time
def timmer(func)
def warpper(*args,**kwargs):#传参数需要
start_time=time.time()
func(*args,**kwargs) #执行test1
stop_time=time.time()
print(“the func run time is %s” %(stop_time-start_time))
return warpper
@timmer #test1=timmer(test1)
def test1():
time.sleep(3)
print(“in the test 1”)
test1()
+++++++++++++

import time
user,passwd = ‘alex’,’abc123’
def auth(auth_type):
print(“auth func:”,auth_type)
def outer_wrapper(func);
def wrapper(*args,**kwargs):
username = input(“Username:”).strip()
password = input(“Password:”).strip()
if user == username and passwd ==password:
print(“\033[32;认证成功、033[0m”)
res=func(*args,**args)
return res #返回结果
else:
exit(“\033[31;失败!\033[0m”)
return wrapper
return outer_wrapper
@auth(auth_type=’local’)
def home():
print(“home page!”)
return “from home!”


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值