专栏首页python成长之路装饰器实现用户验证登录

装饰器实现用户验证登录

在实现用户验证的登录的时候可以使用装饰器工厂产生装饰器,让装饰器得到参数,从而判断登录类型,并验证用户登录条件,代码实现如下:

def login_type(type):
    def Outer(F):
        def inner():
            if type == 'QQ':
                name = input('请输入用户名:')
                psw = input('请输入密码:')
                if name == '汪凡' and psw == '198765':
                    print('登陆成功!')
                    return F()
                else:
                    print('登录失败,请正确输入!')
            else:
                print('请使用QQ登录!')
        return inner
    return Outer

type = input('请输入登录方式:')
@login_type(type)
def America():
    print('美国人')

@login_type(type)
def Japan():
    print('日本人')

America()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用户注册登录系统 V2.0

    skylark
  • 列表常用操作

    skylark
  • 字典常用操作

    skylark
  • Go语言中反射的正确使用

    介绍 反射是元数据编程的一种形式,指的是程序获得本身结构的一种能力。不同语言的反射模型实现不一样,本文中的反射,仅仅指的是Go语言中的反射模型。 反射有两个问题...

    李海彬
  • Go语言中反射的正确使用

    介绍 反射是元数据编程的一种形式,指的是程序获得本身结构的一种能力。不同语言的反射模型实现不一样,本文中的反射,仅仅指的是Go语言中的反射模型。 反射有两个问题...

    李海彬
  • Go语言中反射的正确使用

    介绍 反射是元数据编程的一种形式,指的是程序获得本身结构的一种能力。不同语言的反射模型实现不一样,本文中的反射,仅仅指的是Go语言中的反射模型。 反射有两个问题...

    李海彬
  • [PYTHON] 核心编程笔记之四

    身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到,这个值可以认为是该对象的内存地址(只读)

    py3study
  • html5总结

    用之前的标签完全可以代替的:header footer aside atrical nav address time mark section

    wfaceboss
  • A parameter verify tools for Egg

    最近接触EGG框架,刚接触,其中涉及到验证参数的一些运用,网上找的egg-validate 都不是很好用,最后找到了parameter插件,挺好用,推荐给大家...

    张炳
  • python eval的常见错误封装及利

    最近在代码评审的过程,发现挺多错误使用eval导致代码注入的问题,比较典型的就是把eval当解析dict使用,有的就是简单的使用eval,有的就是错误的封装了e...

    py3study

扫码关注云+社区

领取腾讯云代金券