zoukankan      html  css  js  c++  java
  • 装饰复杂函数

    # 为登录功能添加账号检验功能:必须是3个及以上英文字母组成
    def check_user(func):
    def inner(user, pwd):
    if not (user.isalpha() and len(user) >= 3):
    return '账号不合法'
    res = func(user, pwd)
    return res
    return inner

    # 为登录功能添加密码检验功能:必须是3个及以上英文字母或数字组成
    def check_pwd(func):
    def inner(*args, **kwargs):
    pwd = args[1]
    if not (pwd.isalnum() and len(pwd) >= 3):
    return '密码不合法'
    res = func(*args, **kwargs)
    return res
    return inner

    # 对登录结果的修饰装饰器:True=>登录成功 False=>登录失败
    def change_res(func):
    def inner(*args, **kwargs):
    res = func(*args, **kwargs)
    if res == True:
    return '登录成功'
    return '登录失败'
    return inner


    @check_user # login = check_user(func=login) = inner
    @check_pwd
    @change_res
    def login(user, pwd):
    if user == 'owen' and pwd == '123':
    return True
    return False

    user = input('user: ')
    pwd = input('pwd: ')
    res = login(user, pwd)

    print(res)



    # 装饰器:固定写法
    def outer(func):
    def inner(*args, **kwargs):
    pass
    res = func(*args, **kwargs)
    pass
    return res
    return inner

    @outer
    def f1(): # 任意函数
    pass
    f1()


  • 相关阅读:
    io
    api 类库
    文档生成工具
    数据存储
    uml vs2010
    IE,firefox下jquery获取一组checkbox选中值的问题
    如何通过Jquery简单又快速的获取一组radio的取值呢?
    WCF重载的方式
    Jquery文本框赋值
    Jquery以name获取值
  • 原文地址:https://www.cnblogs.com/qiangyuzhou/p/10787416.html
Copyright © 2011-2022 走看看