当前位置:Gxlcms > Python > python中关于装饰器的学习

python中关于装饰器的学习

时间:2021-07-01 10:21:17 帮助过:31人阅读

定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能

原则:1.不能修改被装饰的函数的源代码

2.不能修改被装饰的函数的调用方式

  1. import time
  2. def timer(hello):
  3. def func(*args,**kwargs): #函数传参,不限个数。
  4. start = time.time()
  5. hello(*args,**kwargs) #函数传参,不限个数。
  6. end = time.time()
  7. print("运行时间:%s"%(end - start))
  8. return func
  9. @timer
  10. def hello():
  11. time.sleep(2)
  12. print("nihao")
  13. hello()

注:装饰器得写在被装饰函数的上面。

小实验:密码验证

  1. import time
  2. user = { #存储用户名和密码
  3. "luozeng":'123',
  4. "xuemanfei":'456',
  5. "xutian":'789'
  6. }
  7. def yanzheng(hello):
  8. def func(*args,**kwargs):
  9. start = time.time()
  10. username = input("请输入用户:").strip() #用户输入
  11. password = input("请输入密码:").strip()
  12. if username in user and password == user[username]: #用户名和密码验证
  13. print("登陆成功")
  14. hello(*args,**kwargs)
  15. else:
  16. exit("用户名或密码错误!")
  17. end = time.time()
  18. print("运行时间:%s"%(end - start))
  19. return func
  20. @yanzheng
  21. def hello():
  22. print("你好!")
  23. hello()

以上就是python中关于装饰器的学习的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行