python中关于装饰器的学习
程序员文章站
2022-05-02 22:23:13
...
定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能
原则:1.不能修改被装饰的函数的源代码
2.不能修改被装饰的函数的调用方式
import time def timer(hello): def func(*args,**kwargs): #函数传参,不限个数。 start = time.time() hello(*args,**kwargs) #函数传参,不限个数。 end = time.time() print("运行时间:%s"%(end - start)) return func @timer def hello(): time.sleep(2) print("nihao") hello()
注:装饰器得写在被装饰函数的上面。
小实验:密码验证
import time user = { #存储用户名和密码 "luozeng":'123', "xuemanfei":'456', "xutian":'789' } def yanzheng(hello): def func(*args,**kwargs): start = time.time() username = input("请输入用户:").strip() #用户输入 password = input("请输入密码:").strip() if username in user and password == user[username]: #用户名和密码验证 print("登陆成功") hello(*args,**kwargs) else: exit("用户名或密码错误!") end = time.time() print("运行时间:%s"%(end - start)) return func @yanzheng def hello(): print("你好!") hello()
以上就是python中关于装饰器的学习的详细内容,更多请关注其它相关文章!
上一篇: 100分请问: 图片加载-用户体验
推荐阅读
-
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
-
深入理解python中的闭包和装饰器
-
Python中装饰器的基本功能理解
-
python中函数总结之装饰器闭包详解
-
python学习笔记之面向对象中的静态方法、类方法、属性方法总结
-
关于python中异常的详细说明
-
关于python中“赋值就是建立一个对象的引用”,大家怎么看?Python一切皆为对象又是什么意思?
-
Windows 配置Apache以便在浏览器中运行Python script的CGI模式
-
关于SQLServer2005的学习笔记多触发器执行问题
-
python中@property装饰器的使用