python之装饰器应用

原创 2018年04月16日 10:12:43

下面的一个例子实现的一个功能是跳转登陆,根据用户输入,让用户首次登陆后,记录登陆状态,下次无须登陆。还可以根据装饰器参数选择登陆模式。

#帐号,密码存储。这里为了方便直接明文了。
user,passwd = 'aaa','123'
weixin = '1'


login_status = False
def login_else(log='jd'):
    def login(h):
        def fun():
            global login_status                     #定义全局变量
            if login_status == False:               #首次登陆判断
                if log == 'jd':                     #登陆模式判断
                    username = input('usernaem :')
                    passwds = input('passwd:')
                    if user == username and passwd == passwds:      #验证用户名和密码
                        print('welcome...')
                        login_status = True         #更改登陆状态为True
                        h()                         #执行定义的home() OR finance() OR book() ...
                    else:
                        print('帐号或密码错误,登录失败...')
                elif log == 'wx':
                    username = input('验证码 :')
                    if weixin == username :
                        print('welcome...')
                        login_status = True
                        h()
                    else:
                        print('帐号或密码错误,登录失败...')
            else:
                h()
        return fun
    return login
#下面是定义了三个功能函数
@login_else('jd')
def home():
    print('欢迎进入Home界面')

@login_else('wx')
def finance():
    print('你需要什么金融产品?')

@login_else()
def book():
    print('多读书,少玩手机。')

#执行过程
print('1. home')
print('2. finance')
print('3. book')
while True:
    key_num = input('请输入您要进入页面前的数字:')
    if key_num == '1':
        home()
    elif key_num == '2':
        finance()
    elif key_num == '3':
        book()



Python 装饰器的典型使用场景(2)

Python 装饰器的典型使用场景(2)
  • qq_26886929
  • qq_26886929
  • 2017-01-07 11:05:30
  • 1556

Python 装饰器的典型使用场景(1)

Python 装饰器的典型使用场景(1)
  • qq_26886929
  • qq_26886929
  • 2017-01-05 12:32:59
  • 1536

Python实战小程序——装饰器

第四题:简述对Python装饰器的理解,写一个简单的装饰器。 要理解装饰器,我们先介绍一下几点python的基础知识。 1、作用域(命名空间)及变量生存周期 有过一点编程基础的都知道namesp...
  • misayaaaaa
  • misayaaaaa
  • 2016-11-04 16:15:29
  • 977

Python中装饰器的应用

  • 2014年11月08日 00:18
  • 77KB
  • 下载

Python装饰器----应用示例(一)

写装饰器 装饰器只不过是一种函数,接收被装饰的可调用对象作为它的唯一参数,然后返回一个可调用对象(就像前面的简单例子) 注意重要的一点,当装饰器被应用到被装饰函数上时,装饰器代码本身就会运行,而不...
  • zhangfh1990
  • zhangfh1990
  • 2017-06-18 23:54:44
  • 526

python装饰器--原来如此简单

python装饰器–原来如此简单今天整理装饰器,内嵌的装饰器、让装饰器带参数等多种形式,非常复杂,让人头疼不已。但是突然间发现了装饰器的奥秘,原来如此简单。。。。第一步 :从最简单的例子开始# -*-...
  • u013858731
  • u013858731
  • 2017-02-10 16:27:56
  • 2470

python 装饰器传参

你是否方法正确,你的努力总是会带来相对的疲惫,不论是上坡路还是下坡路。没有足够休息的时间,自然就会心力交瘁,特别是不再健康的时候。如果这时还被施加各种各样的压力,你要知道自己如何做出决定才能生活向着内...
  • liushaochan123
  • liushaochan123
  • 2016-06-03 22:38:42
  • 1305

浅析python中@装饰器的作用

要了解python中@装饰器的作用,首先要记住这么几点: 1. 装饰器符号“@”属于语法糖,什么意思呢?就是说,我不按照@装饰器的语法要求来写,而是按照一般python的语法要求来写完全可以。那么用...
  • star714
  • star714
  • 2017-05-01 10:56:32
  • 484

Python装饰器使用示例 及 实际应用例子 与应用

这篇文章主要介绍了Python装饰器使用示例及实际应用例子,本文给出了斐波拉契数列、注册回调函数、mysql封装、线程异步等实际使用示例,需要的朋友可以参考下测试1deco运行,但myfunc并没有运...
  • weixin_40907382
  • weixin_40907382
  • 2018-02-27 13:37:33
  • 23

python 装饰器的使用

这几天,自己在试试django。前断时间自己用grails写了个crm,感觉不是太好,tomcat、java这些东西玩起来都太重量级了,竟然跑个这个把别人虚拟机给跑死了,让我不禁想试试其他的方案了。 ...
  • Lxyer
  • Lxyer
  • 2013-09-23 20:15:46
  • 607
收藏助手
不良信息举报
您举报文章:python之装饰器应用
举报原因:
原因补充:

(最多只允许输入30个字)