装饰器学习

装饰器:它可以让其他函数在不需要做任何代码变动的前提下增加额外功能

 

怎么理解?
1、开放封闭原则,这个时候就使用装饰器
2、python里面,一切皆对象,那么被装饰的函数本质上其实是装饰器函数的形式参数

 

复制代码
# 装饰器的函数
def outer(func):
    def inner():
        func()
    return inner
@outer
def f1():
    print('OK')
f1()
结果:
OK
复制代码

 

依据如上,我们可以总结出,它执⾏的顺序具体为:
先执outer的函数
再执⾏内部函数inner
下来执⾏到inner函数的返回值
再具体到inner的函数,执inner函数⾥⾯的表达式

 

 

复制代码
dict1={'islogin':False}

def outer(func):
    def inner():
        if dict1['islogin'] ==True:
            func()
        else:
            return print('请登录!!!')
    return inner

def login(username='wr',password='admin'):
    if username=='wr' and password=='admin':
        dict1['islogin']=True
        return 'login Success'
    else:
        return '账户或者密码错误'
@outer
def admin():
    print('访问后台管理系统')

while True:
    p=int(input('1、登录 2、后台系统\n'))
    if p==1:
        login()
    elif p==2:
        admin()
    else:
        break
结果:
1、登录 2、后台系统
2
访问后台管理系统
1、登录 2、后台系统
复制代码

 

posted @   LaraCroft  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示