无参装饰器

#这就是一个实现一个装饰器最基本的架子#无参装饰器=高级函数+函数嵌套def time(func):    def wrapper():        func()    return wrapper#加上参数
def time(func):    def wrapper(*args,**kwargs):        func(*args,**kwargs)    return wrapper

#加上功能
import timedef timer(func):    def wrapper(*args,**kwargs):        start_time=time.time()        func(*args,**kwargs)        stop_time=time.time()        print(‘函数 [%s],运行时间是[%s]‘ %(func,stop_time-start_time))    return wrapper

#加上返回值

import time
def timer(func):    def wrapper(*args,**kwargs):        start_time=time.time()        res=func(*args,**kwargs)        stop_time=time.time()        print(‘函数 [%s],运行时间是[%s]‘ %(func,stop_time-start_time))        return  res    return wrapper

				
时间: 2024-10-21 14:10:52

无参装饰器的相关文章

闭包函数、无参装饰器2

一.闭包函数 闭包函数:函数内部定义函数,成为内部函数.该内部函数包含对外部作用域,而不是对全局作用域名字的引用,那么该内部函数成为闭包函数. name='alex' #定义全局变量name='alex' def func(): name='egon' #定义局部变量name='egon' def bar(): print(name) return bar #返回bar函数名 b=func() #执行func()结果为bar的函数名 相当于b=bar name='haha' #重新定义全局变量n

闭包函数、无参装饰器

闭包函数:函数内部定义函数,成为内部函数.该内部函数包含对外部作用域,而不是对全局作用域名字的引用,那么该内部函数成为闭包函数. name='alex' #定义全局变量name='alex' def func(): name='egon' #定义局部变量name='egon' def bar(): print(name) return bar #返回bar函数名 b=func() #执行func()结果为bar的函数名 相当于b=bar name='haha' #重新定义全局变量name='ha

无参装饰器为被装饰函数添加统计时间的功能

#需求 定义无参装饰器为被装饰函数添加统计时间的功能 1 import time #导入时间模块 2 3 def timer(func): 4 def wapper(): 5 start = time.time() 6 func() 7 stop = time.time() 8 index_spend_time = stop - start 9 print(index_spend_time) 10 return wapper 11 @timer 12 def index(): 13 time.s

python中的无参装饰器和有参装饰器

python中的无参装饰器和有参装饰器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 装饰器特点: 1>.开放封闭原则,即对扩展是开放的,对修改时封闭的: 2>.装饰器本质可以是任意可调用的对象,被装饰的对象也可以是任意可调用对象: 3>.装饰器的功能是在不修改被装饰器对象源代码以及被装饰器对象的调用方式的前提下为其扩展新功能: 4>.装饰器本质是函数,(即装饰其他函数)就是为其他函数添加附加功能. 一.典型装饰器案例 1 #!/usr/bin/env pyth

ⅩⅥ:无参装饰器

一:储备知识 1.*args, **kwargs def index(x,y): print(x,y) def wrapper(*args,**kwargs): index(*args,**kwargs) # # index(y=222,x=111) wrapper(y=222,x=111) 2.名称空间与作用域:名称空间的的"嵌套"关系是在函数定义阶段,即检测语法的时候确定的 3.函数对象: # 可以把函数当做参数传入 # 可以把函数当做返回值返回 def index(): retu

17、无参装饰器

一.什么是装饰器 器是工具,这里指的是函数 装饰指的是添加额外的东西 所有装饰器的意思就是给定义好的函数添加上额外的功能 二.为什么要用装饰器 装饰器的目的是在不修改源代码以及调用方式的前提下为装饰对象添加新的功能 三.装饰器的原则 开放封闭式原则 开放指的是扩展功能是开放的 封闭指的是对源代码修改是封闭的 四.怎么使用装饰器 1.例题:先设定一个基本函数 def index(x,y): time.sleep(3) print('index %s %s' %(x,y)) 2.在函数的基础上添加运

闭包函数 装饰器 有参装饰器

闭包函数: 1 内部函数 2 包含对外部作用域而非全局作用域的引用闭包函数的特点: 自带作用域  延迟计算 #闭包函数定义 1 def timmer(func): 2 def inner(*args,**kwargs): 3 re = func(*args,**kwargs) 4 return re 5 return inner 6 7 index(): 8 print("hello") 9 10 index = timmer(index) #index == inner 11 ind

python--有参装饰器、迭代器

import timeimport randomfrom functools import wraps def timmer(func):    @wraps(func)    def wrapper():        # wrapper.__doc__=func.__doc__        start_time = time.time()        func()        stop_time=time.time()        print('run time is %s' %(s

定义有参装饰器为被装饰函数添加认证功能,定义有参装饰器为被装饰函数添加认证功能,三次验证失败锁定用户

#需求:定义有参装饰器为被装饰函数添加认证功能,用户信息的来源可以是文件也可以是ldap # 三次验证失败锁定用户 1 def menu(): 2 #用户交互界面 3 user_name = input("请输入在用户名:") 4 password = input("请输入密码:") 5 return user_name,password #以元组形式返回值 6 ''' 7 alex1 1111 8 alex2 2222 9 egon3 3333 10 ''' 11