zoukankan      html  css  js  c++  java
  • 【python之路】【5、函数学习】带装饰器的函数作业【老男孩第2期全栈】

    #!/usr/bin/env python
    # -*- coding = utf-8 -*-
    # Author = 'watalo'
    # time = 2019/10/3 20:12
    
    login_status = False
    
    def logger(auth_type): #带参数的装饰器,要在原装饰器login上面再加一层
        filename = str(auth_type)
        def login(f):  #装饰器:实现验证是否登陆,没有登陆就登陆
            def inner():
                global  login_status, username
                nonlocal filename
                if login_status == False:
                    if auth_type == 'jingdong':
                        username = input('请输入京东账号:')
                    elif auth_type == 'weixin':
                        username = input('请输入微信账号:')
                    else:
                        print("内部错误")
                    password = input('请输入账号密码:')
                    with open(filename, 'r', encoding='utf-8') as filedict:
                        dict_f = eval(filedict.read())
                        if username in dict_f and dict_f[username] == password:
                            f()
                            login_status = True
                        else:
                            print('请输入正确的用户名和密码')
                else:
                    f()
            return inner
        return login
    
    @logger(auth_type='jingdong')
    def home():
        print('欢迎进入主页面!')
    
    @logger(auth_type='weixin')
    def finance():
        print('欢迎进入金融页面!')
    
    @logger(auth_type='jingdong')
    def books():
        print('欢迎进入书籍页面!')
    
    
    def main():
        print('1、主页
    2、金融
    3、书籍
    [退出:q]')
        pages = input('请选择您要进入的页面>>>:')
        while True:
            if pages == '1':
                home()
                pages = input('请选择您要进入的页面>>>:')
            elif pages == '2':
                finance()
                pages = input('请选择您要进入的页面>>>:')
            elif pages == '3':
                books()
                pages = input('请选择您要进入的页面>>>:')
            elif pages == 'q':
                exit()
            else:
                pages = input('无此页面
    请重新选择您要进入的页面>>>:')
    main()

     迭代器学习网址:https://www.cnblogs.com/yuanchenqi/artiles/5830025.html

  • 相关阅读:
    MyEclipse的使用
    监控linux各主机系统时间是否一致
    Myeclipse反编译工具
    Myeclipse添加源码链接
    ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
    Authentication token manipulation error报错解决办法
    大数据项目
    maxcompute笔记
    kfrobotaidlog查找
    2019.02.12-2019.02.19 工作安排
  • 原文地址:https://www.cnblogs.com/watalo/p/11623559.html
Copyright © 2011-2022 走看看