• Python- 装饰器


    一、装饰器

      目录

        1、装饰器定义

        2、装饰器原则

        3、装饰器练习

        4、装饰器高级版

    二、

      1、定义:

          本质是函数,就是为其他函数附加功能

      2、原则:

          1、不能修改被装饰的函数的源代码

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

      3、练习

     1 def demo1(func):
     2     def doca(*args,**kwargs):
     3         func(*args,**kwargs)
     4         print('我是显示器')
     5     return doca
     6 
     7 @demo1
     8 def b1():
     9     print('源代码1')
    10 
    11 @demo1
    12 def b2(name,age):
    13     print('源代码2',name,age)
    14 
    15 
    16 b1()
    17 b2('alex',23)

      4、高级版

          1、需求是,test1、test2、test3假如是三种不同平台要登录,所验证的方式不一样

     1 user,pwd='123','123'
     2 def auto(auto_type):
     3     def worapps_type(func):
     4         def worapps(*args,**kwargs):
     5             if auto_type == 'ldouc':
     6                 username=input('输入用户名:')
     7                 password=input('输入密码:')
     8                 if username == user and password == pwd:
     9                     print('登录成功!我是第一种登录方式')
    10                     return func(*args,**kwargs)
    11                 else:
    12                     exit()
    13             elif auto_type == 'ldap':
    14                 print('我是第二种登录方式')
    15         return worapps
    16     return worapps_type
    17 
    18 
    19 
    20 def text1():
    21     print('我是text1')
    22 
    23 @auto(auto_type='ldouc')
    24 def text2():
    25     print('我是text2')
    26     return 'text2返回值'
    27 
    28 @auto(auto_type='ldap')
    29 def text3():
    30     print('我是text3')
    31 
    32 
    33 text1()
    34 text2()
    35 text3()
  • 相关阅读:
    定制事件 观察者模式
    定时器的高级运用 优化
    tamper-proof 对象 nonextensible对象 sealed对象 frozen对象
    函数柯理化
    跨域 Ajax 其他可选技术 异步
    Ajax 跨域 异步 CORS
    原样输出html标签
    JavaScript
    css 中name的用途
    iview 按需引入解决加载慢的问题
  • 原文地址:https://www.cnblogs.com/km-thonder/p/12577069.html
Copyright © 2020-2023  润新知