首页 > 编程语言 > 详细

Python-----带参数的装饰器以及补充

时间:2019-06-25 20:45:37      阅读:71      评论:0      收藏:0      [点我收藏+]
  1. 带参数的装饰器

     def wrapper_out(n):
    #     def wrapper(f):
    #         def inner(*args,**kwargs):
    #             # if n == 'qq':
    #             #     username = input('请输入用户名:').strip()
    #             #     password = input('请输入密码:').strip()
    #             #     with open('qq',encoding='utf-8') as f1:
    #             #         for line in f1:
    #             #             user,pwd = line.strip().split('|')
    #             #             if username == user and password == pwd:
    #             #                 print('登陆成功')
    #             #                 ret = f(*args,**kwargs)
    #             #                 return ret
    #             #         return False
    #             # elif n == 'tiktok':
    #             #     username = input('请输入用户名:').strip()
    #             #     password = input('请输入密码:').strip()
    #             #     with open('tiktok', encoding='utf-8') as f1:
    #             #         for line in f1:
    #             #             user, pwd = line.strip().split('|')
    #             #             if username == user and password == pwd:
    #             #                 print('登陆成功')
    #             #                 ret = f(*args, **kwargs)
    #             #                 return ret
    #             #         return False
    #             username = input('请输入用户名:').strip()
    #             password = input('请输入密码:').strip()
    #             with open(n,encoding='utf-8') as f1:
    #                 for line in f1:
    #                     user,pwd = line.strip().split('|')
    #                     if username == user and password == pwd:
    #                         print('登陆成功')
    #                         ret = f(*args,**kwargs)
    #                         return ret
    #                 return False
    #         return inner
    #     return wrapper
    # """
    # # @wrapper_out('qq')
    # # def qq():
    # #     print('成功访问qq')
    # # qq()
    # # 看到带参数的装饰器分两步执行:
    # '''
    # @wrapper_out('腾讯')
    #     1. 执行wrapper_out('腾讯') 这个函数,把相应的参数'腾讯' 传给 n,并且得到返回值 wrapper函数名。
    #     2. 将@与wrapper结合,得到我们之前熟悉的标准版的装饰器按照装饰器的执行流程执行。
    # '''
    # """
    # @wrapper_out('qq')
    # def qq():
    #     print('成功访问qq')
    # @wrapper_out('tiktok')
    # def tiktok():
    #     print('成功访问抖音')
    # qq()
    # tiktok()
  2. 多个装饰器装饰一个函数

    技术分享图片

  3. 递归函数

    递归函数:函数或者其他代码都可以解决递归解决的问题,但是递归在某些时候能出奇制胜的效果,人理解函数,神理解递归。

    自己用自己。

    技术分享图片

Python-----带参数的装饰器以及补充

原文:https://www.cnblogs.com/hql1117/p/11085297.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!